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

18 Ansichten (letzte 30 Tage)
MathWorks Support Team
MathWorks Support Team am 13 Nov. 2024 um 0:00
Beantwortet: MathWorks Support Team am 13 Nov. 2024 um 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はセル配列とパターンを受け入れるとあります。 

Akzeptierte Antwort

MathWorks Support Team
MathWorks Support Team am 13 Nov. 2024 um 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の回答を参照してください。 

Weitere Antworten (0)

Kategorien

Mehr zu ビッグ データの処理 finden Sie in Help Center und File Exchange

Tags

Noch keine Tags eingegeben.

Community Treasure Hunt

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

Start Hunting!