Find

Dear Matlabians
I have one string '14022010_003' and = another
13022010_001
14022010_003
15022010_005
i want to find 14022010_003 in the other string. I try to use find findstr or strfind and it says to me that I need to have same matrix dimensions.
The result i am searching is for the script to give me the number 2 (that this string is in position 2) .Any ideas
Thank you

回答 (5 件)

karan
karan 2011 年 12 月 19 日

3 投票

a = {'13022010_001';'14022010_003';'15022010_005'};
find(strcmp(a,'14022010_003'))
should give you the index where the string is matched...
Nirmal Gunaseelan
Nirmal Gunaseelan 2011 年 12 月 19 日

0 投票

Try making the input strings as part of a cell array. Then use STRFIND or STRCMP which will return a logical array of comparisons.
a = {'13022010_001';'14022010_003';'15022010_005'};
strcmp(a,'14022010_003')
ans =
0
1
0
Walter Roberson
Walter Roberson 2011 年 12 月 19 日

0 投票

[tf, idx] = ismember('14022010_003', cellstr(['13022010_001'; '14022010_003'; '15022010_005']) );
Daniel Shub
Daniel Shub 2011 年 12 月 19 日

0 投票

x = '14022010_003'
y = {'13022010_001'
'14022010_003'
'15022010_005'}
find(strcmp(y,x))
Notice the {} and not [] on y.
Alexandros
Alexandros 2011 年 12 月 20 日

0 投票

I have put strmatch and it works perfectly

1 件のコメント

Jan
Jan 2011 年 12 月 20 日
STRMATCH is very inefficient and will be removed in the near future. STRCMP and STRCNCMP are much faster.

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

カテゴリ

ヘルプ センター および File ExchangeCharacters and Strings についてさらに検索

タグ

質問済み:

2011 年 12 月 19 日

Community Treasure Hunt

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

Start Hunting!

Translated by