2017-03-22 22 views
1

私はセルの配列を持っていますB。私は、セルの1つにある値(この場合は[1 1 1440 1920])が含まれているかどうかを調べたい場合は、それを削除します。セル配列内のセルにMATLABの特定の値が含まれているかどうかを調べるにはどうすればよいですか?

私が使用してみました:

ismember(mat2cell([1 1 1440 1920],1),B) 

私は「クラスのセルのクラスのセルと入力Bの入力Aは文字ベクトルのセル配列でなければなりません」というエラーを得ました。

私はmat2cell()が私にセル配列を与えるだろうと思っていました。私は間違って何をしていますか?

存在する場合、このコンポーネントを見つける簡単な方法はありますか?削除しますか?ここで

+0

もう少し見てみると、これは基本的には[この質問](http://stackoverflow.com/q/18740802/52738)の複製であるように見えます(一般的な解決策は同じです。別のセルの内容を検索する)、私は閉じて投票しています。 – gnovice

答えて

1

あなたがcellfunを使用してそれを行うことができます方法は次のとおりです。

B(cellfun(@(c) isequal(c, [1 1 1440 1920]), B)) = []; 

anonymous functionはどこにでも、セルの内容が[1 1 1440 1920]に等しい真である論理インデックスを返す、Bの各セルに適用されます。このインデックスは、これらのセルを削除するために使用されます。

+0

匿名関数の精緻化は非常に便利です。ありがとう。 – havakok

関連する問題