Matching only parts of two cell arrays

1 回表示 (過去 30 日間)
joseph Frank
joseph Frank 2013 年 7 月 14 日
A= {'36450A107';'36467A107';'38067A107'}
B={'36467A'};
How can I find that the 2nd cell in A matches the first 6 characters of B?

採用された回答

Azzi Abdelmalek
Azzi Abdelmalek 2013 年 7 月 14 日
編集済み: Azzi Abdelmalek 2013 年 7 月 14 日
out=find(cellfun(@(x) strcmp(x(1:6),B),A))

その他の回答 (2 件)

Andrei Bobrov
Andrei Bobrov 2013 年 7 月 14 日
find(~cellfun('isempty',regexp(A,B)));

Chandrasekhar
Chandrasekhar 2013 年 7 月 14 日
for i = 1:length(A)
TF = findstr(char(B(1)),char(A(i)))
if(TF == 1)
disp(i)
end
end
  1 件のコメント
joseph Frank
joseph Frank 2013 年 7 月 14 日
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.

サインインしてコメントする。

カテゴリ

Help Center および File ExchangeSimulink についてさらに検索

タグ

Community Treasure Hunt

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

Start Hunting!

Translated by