セル配列があるとしましょう
strs = {'HA' 'KU' 'LA' 'MA' 'TATA'}
のインデックスを見つけたい場合はどうすればよい'KU'
ですか?
セル配列があるとしましょう
strs = {'HA' 'KU' 'LA' 'MA' 'TATA'}
のインデックスを見つけたい場合はどうすればよい'KU'
ですか?
>> strs = {'HA' 'KU' 'LA' 'MA' 'TATA'};
>> tic; ind=find(ismember(strs,'KU')); toc
経過時間は 0.001976 秒です。
>> tic; find(strcmp('KU', strs)); toc
経過時間は 0.000014 秒です。
SO、明らかにstrcmp('KU', strs)
時間がかかるよりもはるかに短いismember(strs,'KU')
2011a 以降、推奨される方法は次のとおりです。
booleanIndex = strcmp('KU', strs)
整数インデックスを取得したい場合 (多くの場合必要ありません)、次を使用できます。
integerIndex = find(booleanIndex);
strfind
は推奨されていないため、使用しないようにしてください。
誰もがあなたのコードの最も重要な欠陥を見逃しているようです:
strs = {'HA' 'KU' 'LA' 'MA' 'TATA'}
次のようにする必要があります。
strs = {'HA' 'KU' 'NA' 'MA' 'TATA'}
また
strs = {'HAKUNA' 'MATATA'}
使い続けるなら
ind=find(ismember(strs,'KU'))
心配する必要はありません:) 。
strcmp および strcmpi 関数は、これを行う最も直接的な方法です。配列を検索します。
strs = {'HA' 'KU' 'LA' 'MA' 'TATA'}
ix = find(strcmp(strs, 'KU'))