特定の文字列を含むセルのインデックスを見つけるにはどうしたらよいですか?
9 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos
MathWorks Support Team
el 13 de Nov. de 2024 a las 0:00
Respondida: MathWorks Support Team
el 13 de Nov. de 2024 a las 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はセル配列とパターンを受け入れるとあります。
Respuesta aceptada
MathWorks Support Team
el 13 de Nov. de 2024 a las 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 comentarios
Más respuestas (0)
Ver también
Categorías
Más información sobre ビッグ データの処理 en Help Center y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!