如何在 MATLAB 中查找元胞数组中的元胞是否包含特定值?

How do I find if a cell in a cell array contains a certain value in MATLAB?

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

我尝试使用:

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

我收到一条错误消息 "Input A of class cell and input B of class cell must be cell arrays of character vectors"。

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

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

以下是使用 cellfun 的方法:

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

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