特定の文字列を含むセ​ルのインデックスを見​つけるにはどうしたら​よいですか?

9 ビュー (過去 30 日間)
MathWorks Support Team
MathWorks Support Team 2024 年 11 月 13 日 0:00
回答済み: MathWorks Support Team 2024 年 11 月 13 日 4:24

40,000x1のセル配列があり、各セルには文字列が含まれています。特定の文字列を含むセルのインデックスを見つけたいです。以下のように試しましたが:

Index = strfind(Mycellarray, 'Bla');
次のエラーが発生します:

Error using ==> cell.strfind at 35 If any of the input arguments are cell arrays, the first must be a cell array of strings and the second must be a character array.
何が間違っているのでしょうか?ヘルプファイルでは、strfindはセル配列とパターンを受け入れるとあります。 

採用された回答

MathWorks Support Team
MathWorks Support Team 2024 年 11 月 13 日 0:00
セル配列内の各要素のテキストに「bla」が含まれているかを検索したいのか、それとも要素が正確に「bla」であるものを探したいのかによって、答えが異なります。この詳細を説明していただけると、質問への回答が容易になります。
テキストの一部として「bla」を検索している場合、R2016b以降では「contains」関数を使用できます。
Index = find(contains(Mycellarray, 'bla'));
「contains」関数は論理配列を返します。この論理インデックスを使用することで、多くのワークフローを効率化できます。論理配列の使用については、以下のドキュメントを参照してください。
R2016b以前のバージョンのMATLABでは、「strfind」関数を使用できます。ただし、「strfind」はインデックスのセル配列を返します。入力セルのテキストに「bla」が含まれていない場合、「strfind」は空のセルを返します。「isempty」と「cellfun」を「find」関数と組み合わせて、空でないセルを見つけます。
IndexC = strfind(Mycellarray, 'bla'); Index = find(not(cellfun('isempty', IndexC)));
テキストが正確に「bla」であるものを検索している場合は、Josの回答を参照してください。 

その他の回答 (0 件)

カテゴリ

Help Center および File Exchangeビッグ データの処理 についてさらに検索

タグ

タグが未入力です。

Community Treasure Hunt

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

Start Hunting!