2
           ''    [  2281]    [  2520]    [8]
           ''          []          []     ''

就像我cell数组中的上述数据一样。如何确定第二行无效?我试过isempty()了,但结果不是最优的。

4

2 回答 2

6

使用cellfunallisempty如下,

>> invalidRow = all(cellfun(@isempty,C),2)

invalidRow =

     0
     1
于 2013-09-25T01:59:50.597 回答
2

这是一个快速技巧:将单元格数组中的每一行组合成一个常规数组/字符串(字符串是 char 数组),并检查它是否为空。如果组合数组为空,则单元格行中的每个元素也为空

data  = {'', [23], [45], [8];
         '', [], [], ''};
nRows = size(data, 1);
bad_r = zeros(nRows, 1);

for row = 1:nRows
    if isempty([data{row, :}])
        bad_r(row) = 1;
    end
end
于 2013-09-25T01:03:31.100 回答