Sort a matrix with another matrix

28 Ansichten (letzte 30 Tage)
Bi
Bi am 16 Okt. 2017
Kommentiert: Andrei Bobrov am 29 Apr. 2019
How can I sort a matrix A with another matrix B, where the elements of B may be replicated (not in a complete sequence of 1:n with all numbers of 1,2,3,...,n-1,n)? For example,
If I have a matrix A=[5 1; 8 2; 7 3; 3 4; 2 5];
and a matrix of B=[0; 0; 2; 1; 1];
(Or a matrix of B1 where B1=[0 0; 0 0; 2 2; 1 1; 1 1];)
How can I sort A with B with answer of resultant matrix C of C=[5 1; 8 2; 2 5; 3 4; 7 3];?

Akzeptierte Antwort

Azzi Abdelmalek
Azzi Abdelmalek am 16 Okt. 2017
[~,id]=sort(B)
C=A(id,:)

Weitere Antworten (1)

Andrei Bobrov
Andrei Bobrov am 16 Okt. 2017
[~,ii] = sortrows([B,A(:,1)])
C = A(ii,:)
  2 Kommentare
Evans Gyan
Evans Gyan am 29 Apr. 2019
Under the same problem, I would want to sort or match the vectors in A with that of B.
Thank you in advance !
A = 64.3169
49.8369
54.1163
B = 54.5211
64.1124
50.5202
so that the output will be
C = 64.1124
50.1163
54.5211
Andrei Bobrov
Andrei Bobrov am 29 Apr. 2019
[~,i1] = sort(A);
[~,i2] = sort(i1);
Bst = sort(B);
C = Bst(i2);

Melden Sie sich an, um zu kommentieren.

Kategorien

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

Community Treasure Hunt

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

Start Hunting!

Translated by