【发布时间】:2015-04-27 05:35:52
【问题描述】:
我有一个像这样的元胞数组:
>> celldisp(C)
C{1} =
4 2 7 10
0 0 0 0
0 0 0 0
0 0 0 0
0 0 0 0
C{2} =
4 2 7 10
8 2 8 8
0 0 0 0
0 0 0 0
0 0 0 0
C{3} =
4 2 7 10
8 2 8 8
8 4 1 6
0 0 0 0
0 0 0 0
C{4} =
4 2 7 10
8 2 8 8
8 4 1 6
3 1 3 4
0 0 0 0
C{5} =
4 2 7 10
8 2 8 8
8 4 1 6
3 1 3 4
3 2 3 9
现在我想删除所有用零填充的行,所以我可以让单元格看起来像这样:
C{1} =
4 2 7 10
C{2} =
4 2 7 10
8 2 8 8
C{3} =
4 2 7 10
8 2 8 8
8 4 1 6
C{4} =
4 2 7 10
8 2 8 8
8 4 1 6
3 1 3 4
C{5} =
4 2 7 10
8 2 8 8
8 4 1 6
3 1 3 4
3 2 3 9
如何在没有任何循环的情况下做到这一点? PS:我正在尝试使用
'cellfun(@(c_el) nonZeros(c_el), C,'UniformOutput',false)'
但是matlab显示
Undefined function 'nonZeros' for input arguments of type 'double'.
Error in @(c_el)nonZeros(c_el)'
那么有什么绝妙的方法来解决这些问题吗?谢谢。
【问题讨论】:
标签: matlab loops cell-array