How to sort matrix based on another matrix?
13 views (last 30 days)
Show older comments
A=[3,2,1;8,3,1;6,4,2] and B=[5,9,2;9,2,1;8,7,4] Matrix A sort by row like A=[1,2,3;1,3,8;2,4,6] then based on A change values of B matrix like B=[2,9,5;1,9,2;4,7,8].
0 Comments
Accepted Answer
Stephen23
on 26 Aug 2019
>> A = [3,2,1;8,3,1;6,4,2]
A =
3 2 1
8 3 1
6 4 2
>> B = [5,9,2;9,2,1;8,7,4]
B =
5 9 2
9 2 1
8 7 4
>> [A,X] = sort(A,2);
>> for k = 1:size(X,2), B(k,:) = B(k,X(k,:)); end
>> A
A =
1 2 3
1 3 8
2 4 6
>> B
B =
2 9 5
1 2 9
4 7 8
More Answers (1)
Rik
on 26 Aug 2019
Assuming you made a small typo in your B_out:
A=[3,2,1;8,3,1;6,4,2];
B=[5,9,2;9,2,1;8,7,4];
for row=1:size(A,1)
[A(row,:),order]=sort(A(row,:));
B(row,:)=B(row,order);
end
clc,disp(B)
See Also
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!