我在维度C
的Matlab中有一个单元格mx1
,例如m=3
C={{1 2 3; 4 5 6} {4 5 6} {7 8 9 10; 11 12 13 14; 15 16 17 18}}
有没有办法让维D
的向量mx1
报告C
中每个子单元格的行数而不使用循环?在示例中D=[2 1 3]'
。
答案 0 :(得分:4)
这与您上次(现已删除)的问题相同,只需使用size
代替length
:
D = cellfun(@(x)(size(x,1)), C)
但请注意cellfun
只是for循环的包装器,所以这样做不会避免循环。
注意一个更好的解决方案(来自Luis Mendo的评论)
[D, ~] = cellfun(@size, C)
通过这种方式,您可以在一次拍摄中获得行数和列数:
[nr, nc] = cellfun(@size, c)
答案 1 :(得分:1)
请你试试这两条说明:
cellsz = cellfun(@size,C,'uni',false);
cellsz{:}
你会得到类似的东西:
ans =
4 2
ans =
3 1
ans =
5 3