Sort a vector according to another vector

25 Ansichten (letzte 30 Tage)
Mohsen Rajaei
Mohsen Rajaei am 4 Mär. 2014
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

Akzeptierte Antwort

lvn
lvn am 4 Mär. 2014
[~,Bsort]=sort(B); %Get the order of B
C=A(Bsort)
C =
1 9 4 5 8
  2 Kommentare
Mohsen Rajaei
Mohsen Rajaei am 4 Mär. 2014
OK. Thank you so much. I got it.
JONATAN RODRIGUEZ VAZQUEZ
JONATAN RODRIGUEZ VAZQUEZ am 13 Jun. 2021
Bearbeitet: JONATAN RODRIGUEZ VAZQUEZ am 13 Jun. 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,:);

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (0)

Kategorien

Mehr zu Shifting and Sorting Matrices finden Sie in Help Center und File Exchange

Tags

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by