Matching only parts of two cell arrays

1 visualizzazione (ultimi 30 giorni)
A= {'36450A107';'36467A107';'38067A107'}
B={'36467A'};
How can I find that the 2nd cell in A matches the first 6 characters of B?

Risposta accettata

Azzi Abdelmalek
Azzi Abdelmalek il 14 Lug 2013
Modificato: Azzi Abdelmalek il 14 Lug 2013
out=find(cellfun(@(x) strcmp(x(1:6),B),A))

Più risposte (2)

Andrei Bobrov
Andrei Bobrov il 14 Lug 2013
find(~cellfun('isempty',regexp(A,B)));

Chandrasekhar
Chandrasekhar il 14 Lug 2013
for i = 1:length(A)
TF = findstr(char(B(1)),char(A(i)))
if(TF == 1)
disp(i)
end
end
  1 Commento
joseph Frank
joseph Frank il 14 Lug 2013
this is not correct I tried it and it gave TF = 1 and 2 . I think you misunderstood the question. I want to find where the 1st 6 characters in A matches B . the 1st row definitely doesn't match nor the 3rd. the only row that matches is the 2nd one.

Accedi per commentare.

Categorie

Scopri di più su Simulink in Help Center e File Exchange

Tag

Community Treasure Hunt

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

Start Hunting!

Translated by