Sort a matrix with another matrix
Show older comments
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];?
Accepted Answer
More Answers (1)
Andrei Bobrov
on 16 Oct 2017
[~,ii] = sortrows([B,A(:,1)])
C = A(ii,:)
2 Comments
Evans Gyan
on 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
on 29 Apr 2019
[~,i1] = sort(A);
[~,i2] = sort(i1);
Bst = sort(B);
C = Bst(i2);
Categories
Find more on Shifting and Sorting Matrices 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!