如何在MATLAB中查找单元格数组中的单元格是否包含某个值?

时间:2017-03-22 15:35:51

标签: matlab find cell-array

我有一组单元格B。我想查找其中一个单元格是否包含某个值,在本例中为[1 1 1440 1920],如果是,则将其删除。

我尝试使用:

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

我得到一个错误说“类单元格的输入A和类单元格的输入B必须是字符向量的单元格数组”。

我认为mat2cell()会给我一个单元格数组。我做错了什么?

是否有更简单的方法来查找此组件(如果存在)并将其删除?

1 个答案:

答案 0 :(得分:1)

以下是使用cellfun

进行操作的方法
B(cellfun(@(c) isequal(c, [1 1 1440 1920]), B)) = [];

anonymous function应用于B的每个单元格,返回一个逻辑索引,该索引在单元格内容等于[1 1 1440 1920]的任何位置都为true。然后使用该索引删除这些单元格。