我的数据具有以下结构:
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
优雅地解决此问题?
答案 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