# How does a matrix sort based on another matrix?

3 views (last 30 days)
SM on 12 Feb 2020
I have two matries such as
A=[2 3 1;2 1 3] and B=[0.2 0.15 0.1; 0.3 0.2 0.1]. Now I want to create a matrix which looks like C=[ 0.1 0.2 0.15; 0.2 0.3 0.1]. What actually happened here is that
B(1,1) moves to C(1,2) because of A(1,1)=2 .
B(1,2) moves to C(1,3) because of A(1,2)=3;
B(1,3) moves to C(1,1) beacause of A(1,3)=1;
B(2,1) moves to C(2,2) beacause of A(1,1)=2;
B(2,2) moves to C(2,1) beacause of A(1,2)=1;
B(2,3) moves to C(2,3) beacause of A(1,3)=3;
I used just C=B(A)..it does not make sense for me! Is there any possible solution without loop?
##### 0 CommentsShowHide -1 older comments

Sign in to comment.

### Accepted Answer

JESUS DAVID ARIZA ROYETH on 12 Feb 2020
Edited: JESUS DAVID ARIZA ROYETH on 12 Feb 2020
Solution:
C=zeros(size(B));
C(sub2ind(size(B),repmat((1:size(B,1))',1,size(B,2)),A))=B
##### 2 CommentsShowHide 1 older comment
JESUS DAVID ARIZA ROYETH on 12 Feb 2020
try now!

Sign in to comment.

### Community Treasure Hunt

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

Start Hunting!

Translated by