How to other all the matrix based on other vector

2 visualizzazioni (ultimi 30 giorni)
How can I order a 2x2 matrix based on a vector For example:
B = [0 0 ; 1 4 ; 2 16 ; 3 19 ; 4 5 ; 5 39 ; 6 4]
C = [3 4 5 6 0 1 2]
the desired output is
D = [3 19; 4 5; 5 39; 6 4; 0 0; 1 4 ; 2 16]
I have been struggling trying to find the correct code line but i am only able to sort the one column and not the second column based on the first one

Risposta accettata

Rik
Rik il 11 Set 2018
Matlab is not zero-indexed, hence the +1 below.
B = [0 0 ; 1 4 ; 2 16 ; 3 19 ; 4 5 ; 5 39 ; 6 4] ;
C = [3 4 5 6 0 1];
order=C+1;
B_ordered=B(order,:);

Più risposte (1)

Jose Valles
Jose Valles il 11 Set 2018
Ok ... I Think i got the answer. Here it is
[~,order] = sort(C);
[Bs,~] = sortrows(B,1);
D(order,:) = Bs

Community Treasure Hunt

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

Start Hunting!

Translated by