单元阵列中每个子单元的行数

时间:2015-06-29 12:24:44

标签: matlab

我在维度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]'

2 个答案:

答案 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
相关问题