Sorting a string according to the values of a vector of type double
3 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
L'O.G.
am 9 Dez. 2022
Beantwortet: Les Beckham
am 9 Dez. 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 Kommentare
Akzeptierte Antwort
Les Beckham
am 9 Dez. 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 Kommentare
Weitere Antworten (1)
Siehe auch
Kategorien
Find more on Characters and Strings in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!