Matching only parts of two cell arrays

A= {'36450A107';'36467A107';'38067A107'}
B={'36467A'};
How can I find that the 2nd cell in A matches the first 6 characters of B?

 Réponse acceptée

Azzi Abdelmalek
Azzi Abdelmalek le 14 Juil 2013
Modifié(e) : Azzi Abdelmalek le 14 Juil 2013
out=find(cellfun(@(x) strcmp(x(1:6),B),A))

Plus de réponses (2)

Chandrasekhar
Chandrasekhar le 14 Juil 2013
for i = 1:length(A)
TF = findstr(char(B(1)),char(A(i)))
if(TF == 1)
disp(i)
end
end

1 commentaire

joseph Frank
joseph Frank le 14 Juil 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.

Connectez-vous pour commenter.

Catégories

Tags

Community Treasure Hunt

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

Start Hunting!

Translated by