Sorting a string according to the values of a vector of type double
5 vues (au cours des 30 derniers jours)
Afficher commentaires plus anciens
L'O.G.
le 9 Déc 2022
Réponse apportée : Les Beckham
le 9 Déc 2022
I have a vector A with numbers of type double. Two of the values of A are the same, e.g.,
A = [1.1 2.3 4.4 2.3 5.1];
I also have a corresponding string, e.g.,
vegetables = {'carrots' 'lettuce' 'cabbage' 'parsley' 'tomatoes'};
I want to order A in increasing values and re-arrange the string accordingly. If a value appears more than once, as is the case here, how do I make sure it's still counted? So here in this simple example I should end up with:
A = [1.1 2.3 2.3 4.4 5.1];
vegatables={'carrots' 'lettuce' 'parsley' 'cabbage' 'tomatoes'};
I tried to do this by
[~,idx] = ismember(sort(A),A);
vegatables_ordered = vegetables(idx);
A_ordered = sort(A);
But that doesn't get the string right. How do I do this? There won't be duplicate values in all cases, but I want to account for this possibility shown here.
0 commentaires
Réponse acceptée
Les Beckham
le 9 Déc 2022
It should be as simple as this unless I misunderstand what you are expecting.
A = [1.1 2.3 4.4 2.3 5.1];
vegetables = {'carrots' 'lettuce' 'parsley' 'cabbage' 'tomatoes'};
[As,idx] = sort(A)
vegetables(idx)
0 commentaires
Plus de réponses (1)
Voir également
Catégories
En savoir plus sur Numeric Types dans Help Center et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!