Filter löschen
Filter löschen

I would like to get an cell array output by matching 2 cell arrays and returning with corresponding matched values from other cell array.

1 Ansicht (letzte 30 Tage)
I have 2 cell arrays A(6*1) and B(35*2).
A= {'MEG0522';'MEG0523';'MEG0512';'MEG0513';'MEG0312';'MEG0313'};
B= {'MEG0522','LF';'MEG0523','LF';'MEG0512','LF';'MEG0513','LF';'MEG0312','LF';'MEG0313','LF';'MEG0342','LF';'MEG0343','LF';'MEG0122','LF';'MEG0123','LF';'MEG0822','LF';'MEG0823','LF';'MEG0533','LF';'MEG0532','LF';'MEG0543','LF';'MEG0542','LF'{'MEG0923','RF';'MEG1212','RF';'MEG1213','RF';'MEG1223','RF';'MEG1222','RF';'MEG1412','RF';'MEG1413','RF';'MEG0943','RF';'MEG0942','RF';'MEG0933','RF';'MEG0932','RF';'MEG1232','RF';'MEG1233','RF'};
I would like to get an output by matching A with B, returning a cell array say C(6*2) with A values in the column 1 and corresponding B values in column 2.
C = {'MEG0522','LF';'MEG0523','LF';'MEG0512','LF';'MEG0513','LF';'MEG0312','LF'};
Values will not be in an orderly fashion. I would appreciate any support from community members.

Akzeptierte Antwort

Carlos Felipe Rengifo
Carlos Felipe Rengifo am 14 Jul. 2018
Please, let me know if the following sentence solves your problem:
B(ismember(B(:,1),A),:)
  4 Kommentare

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (1)

Dave
Dave am 14 Jul. 2018
Bearbeitet: Dave am 14 Jul. 2018
Just because I'm miserable with loops would using intersect meet your needs? Something like
[c,s,t] = intersect(A,B);
C = B(s,:)

Kategorien

Mehr zu Loops and Conditional Statements finden Sie in Help Center und File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by