特定の文字列を含むセルのインデックスを見つけるにはどうしたらよいですか?
9 次查看(过去 30 天)
显示 更早的评论
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
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 个评论
更多回答(0 个)
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 ビッグ データの処理 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!