Sort a matrix with another matrix

21 vues (au cours des 30 derniers jours)
Bi
Bi le 16 Oct 2017
Commenté : Andrei Bobrov le 29 Avr 2019
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];?

Réponse acceptée

Azzi Abdelmalek
Azzi Abdelmalek le 16 Oct 2017
[~,id]=sort(B)
C=A(id,:)
  2 commentaires
Paul Strickland
Paul Strickland le 27 Juil 2018
What do the ~ and the id represent in this command?

Connectez-vous pour commenter.

Plus de réponses (1)

Andrei Bobrov
Andrei Bobrov le 16 Oct 2017
[~,ii] = sortrows([B,A(:,1)])
C = A(ii,:)
  2 commentaires
Evans Gyan
Evans Gyan le 29 Avr 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
Andrei Bobrov le 29 Avr 2019
[~,i1] = sort(A);
[~,i2] = sort(i1);
Bst = sort(B);
C = Bst(i2);

Connectez-vous pour commenter.

Catégories

En savoir plus sur Shifting and Sorting Matrices dans Help Center et File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by