求和单元阵列的成员大小

时间:2013-02-07 21:35:02

标签: arrays matlab

我有一个单元格数组,

a=cell(2,1); 
a{1,1}=[1 2 3];
a{2,1}=[4 5];

我需要计算a字段长度的总和,即答案应为3+2=5。这可以使用for循环

来完成
sum=0;
for i=1:size(a,1)
    sum = sum + size(a{i},2); 
end

但是,我需要一个没有循环的行命令。有什么想法吗?

2 个答案:

答案 0 :(得分:6)

对于单行,请使用cellfun

sum(cellfun(@length,a))

cellfunlength命令应用于a的每个元素,然后sum添加输出。

答案 1 :(得分:5)

你可以这样做:

length( [ a{:} ] )