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

时间:2017-06-26 11:17:05

标签: matlab cell-array is-empty

我的数据具有以下结构:

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优雅地解决此问题?

3 个答案:

答案 0 :(得分:2)

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

答案 1 :(得分:2)

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

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

答案 2 :(得分:1)

好吧,假设您的所有数据与示例中的数据类似,您可以做的一种方法是:

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

ans =

 1
 0
 1