How does a matrix sort based on another matrix?

2 visualizzazioni (ultimi 30 giorni)
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?

Risposta accettata

JESUS DAVID ARIZA ROYETH
JESUS DAVID ARIZA ROYETH il 12 Feb 2020
Modificato: JESUS DAVID ARIZA ROYETH il 12 Feb 2020
Solution:
C=zeros(size(B));
C(sub2ind(size(B),repmat((1:size(B,1))',1,size(B,2)),A))=B
  2 Commenti
SM
SM il 12 Feb 2020
The matrix size varies with my problem size...So, n*m should adjust automatically!

Accedi per commentare.

Più risposte (0)

Categorie

Scopri di più su Shifting and Sorting Matrices in Help Center e File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by