如何在matlab中的元胞数组中找到空数组?

How to find empty array in a cell array in matlab?

我的数据具有以下结构:

Cell_Array = {{[1]},{[]},{[8]}};

如何在不进行双循环的情况下找到此元胞数组中的空数组?

这不起作用。由于此元胞数组中的所有内容都不为空。

~cellfun(@isempty,Cell_Array(:))

如您所见:

isempty(Cell_Array{1,2})
ans = 0

仅在以下情况下有效:

isempty(Cell_Array{1,2}{1,1})
ans = 1

如何使用 cellfun 优雅地解决这个问题?

好吧,假设所有数据都与示例中的数据一样,您可以采用的一种方法是:

C =  [Cell_Array{:}];
~cellfun(@isempty,C(:))

ans =

 1
 0
 1
>> Cell_Array = {{[1]},{[]},{[8]}};
>> cellfun(@(x)isempty(x{:}),Cell_Array)
ans =
     0     1     0

这不依赖于具有特定结构的数组。它为包含 {[]} 的单元格和 false 为其他单元格提供 true 的逻辑索引。

result = cellfun(@(x)isequal(x,{[]}), Cell_Array);