le tri des cellules de la matrice de base sur la colonne (double a pas de char) les valeurs
J'ai un 3x1 cellule d'Un tableau qui comprend:
10.2
15.2
7.2
et un autre 3x1 Matrice de cellules de B comprend:
m
l
s
Je voudrais rejoindre dans un nouveau 3x2 Matrice de cellules de C y compris:
10.2 m
15.2 l
7.2 v
alors je veux C selon les valeurs de la première colonne qui est censé être
7.2 v
10.2 m
15.2 l
ce que j'ai fait jusqu'à présent de le faire est comme suit:
C=A;
C(:,2)=B;
C=sortrows(C,1);
Cependant, le résultat est:
10.2 m
15.2 l
7.2 v
Je pense que la raison c'est qu'il considère les nombres de la première colonne, les personnages et la façon dont il les trie est en regardant les chiffres de chaque nombre un par un à partir de la gauche.. donc 10.2 est de moins de 7,2.
Je suis à la recherche d'un moyen d'affecter les numéros les numéros de à C donc quand je les trier, il les considère comme des numéros qui ne sont pas des caractères. J'ai essayé d'utiliser cell2mat lors de l'affectation de A et de B à C, mais n'a pas de travail. J'ai cherché sur le web pour cela, mais ne pouvait pas trouver ce que je cherche.
Merci!
OriginalL'auteur Evan | 2013-04-18
Vous devez vous connecter pour publier un commentaire.
Ce serait faire ce que vous avez besoin de:
Par exemple, pour l'entrée comme suit:
Le résultat serait:
MODIFIER
Il semble que dans votre cas, le tableau d'entrée
A
n'est pas seulement une cellule de tableau de nombres, mais une cellule de tableau de chaînes de caractères; c'est à dire, par exemple,Dans ce cas, vous devez apporter les modifications suivantes:
str2double(A)
au lieu decell2mat(A)
strtrim(cellstr(num2str(Sorted_A)))
au lieu denum2cell(Sorted_A);
Votre code final sera désormais:
Par exemple, pour l'entrée comme suit:
Le résultat serait:
Réponse d'édition. Il doit travailler pour vous maintenant.
Merci beaucoup ça marche très bien!
OriginalL'auteur Roney Michael
La façon la plus simple: utiliser la deuxième sortie de
sort
:Voir mon dernier edit 🙂
OriginalL'auteur Rody Oldenhuis