セル配列を検索し、セルが正規表現に一致するかどうかを示す単一のブール値を返す必要があります。
たとえば、セル配列strs
にfoo
orが含まれているかどうかを調べたいとします-foo
(大文字と小文字は区別されません)。regexpi に渡す必要がある正規表現は^-?foo$
.
サンプル入力:
strs={'a','b'}
% 結果は 0
strs={'a','foo'}
% 結果は 1
strs={'a','-FOO'}
% 結果は 1
strs={'a','food'}
% 結果は 0
私は、Matlab の ismember 関数でワイルドカードを実装するにはどうすればよいですか? に基づいて、次のソリューションを思いつきました。セル配列を regex で検索していますが、単純化できるはずです。
~isempty(find(~cellfun('isempty', regexpi(strs, '^-?foo$'))))
私が抱えている問題は、このような単純な操作ではかなり不可解に見えることです。同じ結果を得るために使用できる、より単純で人間が読める式はありますか?