Matlab 单元数组中每个子单元的行数
我在Matlab中有一个尺寸为mx1的单元格Matlab 单元数组中每个子单元的行数,matlab,Matlab,我在Matlab中有一个尺寸为mx1的单元格C,例如m=3 C={{1 2 3; 4 5 6} {4 5 6} {7 8 9 10; 11 12 13 14; 15 16 17 18}} 是否有一种方法可以在不使用循环的情况下获得维度mx1的向量D,报告C中每个子单元的行数?在示例D=[2 1 3]”中,这与您上一个(现已删除)问题相同,只需使用大小而不是长度: D = cellfun(@(x)(size(x,1)), C) 但请注意,cellfun只是for循环的包装器,因此这样做并不能避
C
,例如m=3
C={{1 2 3; 4 5 6} {4 5 6} {7 8 9 10; 11 12 13 14; 15 16 17 18}}
是否有一种方法可以在不使用循环的情况下获得维度
mx1
的向量D
,报告C
中每个子单元的行数?在示例D=[2 1 3]”
中,这与您上一个(现已删除)问题相同,只需使用大小
而不是长度
:
D = cellfun(@(x)(size(x,1)), C)
但请注意,cellfun
只是for循环的包装器,因此这样做并不能避免循环
注:更好的解决方案(来自Luis Mendo的评论)是
通过这种方式,您可以在一次拍摄中获得行数和列数:
[nr, nc] = cellfun(@size, c)
这与您上一个(现已删除)问题相同,只需使用
大小
而不是长度
:
D = cellfun(@(x)(size(x,1)), C)
但请注意,cellfun
只是for循环的包装器,因此这样做并不能避免循环
注:更好的解决方案(来自Luis Mendo的评论)是
通过这种方式,您可以在一次拍摄中获得行数和列数:
[nr, nc] = cellfun(@size, c)
您能试试这两个说明吗:
cellsz = cellfun(@size,C,'uni',false);
cellsz{:}
您将得到如下结果:
ans =
4 2
ans =
3 1
ans =
5 3
您能试试这两个说明吗:
cellsz = cellfun(@size,C,'uni',false);
cellsz{:}
您将得到如下结果:
ans =
4 2
ans =
3 1
ans =
5 3
也[D,~]=cellfun(@size,C)
也[D,~]=cellfun(@size,C)