how to merge two matrices via one common column

1 vue (au cours des 30 derniers jours)
Xin CUI
Xin CUI le 23 Juin 2013
Hi there. My question is that I have two matrices, say, A and B, A have two columns, 1 and 2, B has two columns, 3 and 4. Columns 2 and 3 are actually same numbers, BUT with difference order. How can I merge them together? For example, column 2 of matrix A is [a b c d e f]' and column 3 of matrix B is [d c b a e f]'. All the letters are unique ones. Is there an easy way to merge A and B?
  1 commentaire
Matt J
Matt J le 23 Juin 2013
Modifié(e) : Matt J le 23 Juin 2013
It is confusing to call the columns of B "3 and 4" if B only has two columns.

Connectez-vous pour commenter.

Réponse acceptée

Andrei Bobrov
Andrei Bobrov le 23 Juin 2013
[~,ii] = ismember(A(:,2),B(:,1));
out = [A, B(ii,2)];
  1 commentaire
Xin CUI
Xin CUI le 23 Juin 2013
Thank you. Works very well.

Connectez-vous pour commenter.

Plus de réponses (1)

Matt J
Matt J le 23 Juin 2013
Modifié(e) : Matt J le 23 Juin 2013
Anew=sortrows(A,2);
Bnew=sortrows(B,1);
merged=[Anew,Bnew(:,2)];

Catégories

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

Tags

Community Treasure Hunt

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

Start Hunting!

Translated by