2017-06-26 84 views
1

我的數據結構如下:如何在matlab中的單元格數組中找到空數組?

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

我如何才能找到這個單元陣列中的空數組而不進行雙循環?

這不起作用。由於這個單元格陣列中的一切都不是空的。

~cellfun(@isempty,Cell_Array(:)) 

正如你可以在這裏看到:

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

我怎樣才能解決這個優雅與cellfun

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

如果它僅適用?

回答

2

這個工作,而不依賴具有特定結構的陣列上。它爲包含{[]}false的其他單元格的單元格提供true的邏輯索引。

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

好了,你可以假定所有的數據都像一個在你的例子一個方法是:

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

ans = 

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