求和单元阵列的成员大小

Joh*_*ith 3 arrays matlab

我有一个单元阵列,

a=cell(2,1); 
a{1,1}=[1 2 3];
a{2,1}=[4 5];
Run Code Online (Sandbox Code Playgroud)

我需要计算字段长度的总和a,即答案应该是3+2=5.这可以使用for循环来完成,

sum=0;
for i=1:size(a,1)
    sum = sum + size(a{i},2); 
end
Run Code Online (Sandbox Code Playgroud)

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

Jon*_*nas 6

对于单线,使用 cellfun

sum(cellfun(@length,a))
Run Code Online (Sandbox Code Playgroud)

cellfun将命令length应用于每个元素a,然后sum添加输出.


ple*_*siv 5

你可以这样做:

length( [ a{:} ] )
Run Code Online (Sandbox Code Playgroud)