如何在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);
我的数据具有以下结构:
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);