Sort a vector according to another vector
38 vues (au cours des 30 derniers jours)
Afficher commentaires plus anciens
Mohsen Rajaei
le 4 Mar 2014
Modifié(e) : JONATAN RODRIGUEZ VAZQUEZ
le 13 Juin 2021
Hi
I have tow vectors A and B:
A = [4 8 5 9 1]
B = [3 5 4 2 1]
If I sort A with B like this:
C = A(B)
I will get:
C = [5 1 9 8 4]
But I want C like this:
C = [1 9 4 5 8]
How can I do that?
Thank you, M. Rajaei
0 commentaires
Réponse acceptée
lvn
le 4 Mar 2014
[~,Bsort]=sort(B); %Get the order of B
C=A(Bsort)
C =
1 9 4 5 8
2 commentaires
JONATAN RODRIGUEZ VAZQUEZ
le 13 Juin 2021
Modifié(e) : JONATAN RODRIGUEZ VAZQUEZ
le 13 Juin 2021
how can you do the same thing with n x 2 array?
I do it like this
vectors = [3 4;5 12];
modules = [5;13];
[~,modulesSort] = sort(modules); %Get the order of B
%C=A(modulesSort); %not works
% do this
vectorsSortedByModule = vectors(modulesSort,:);
Plus de réponses (0)
Voir également
Catégories
En savoir plus sur Shifting and Sorting Matrices 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!