Matlab 如何为单元格数组的每个元素求和相应的元素

Matlab 如何为单元格数组的每个元素求和相应的元素,matlab,for-loop,matrix,vectorization,Matlab,For Loop,Matrix,Vectorization,我有一个单元数组C,每个元素是一个N1xN2xN3矩阵。 我需要将这些单元格中的所有对应元素相加,得到一个N1xN2xN3矩阵res,其元素等于 res=zeros(size(C{1})); for i=1:n_cell res=res.+C{i} end 有没有更有效的方法(没有for循环?)? 谢谢 您可以沿第四维连接矩阵,然后沿第四维求和 res = sum(cat(4, C{:}), 4); 以下是C res = sum(cat(ndims(C{1}) + 1, C{:})

我有一个单元数组C,每个元素是一个N1xN2xN3矩阵。 我需要将这些单元格中的所有对应元素相加,得到一个N1xN2xN3矩阵res,其元素等于

res=zeros(size(C{1}));
for i=1:n_cell
    res=res.+C{i}
end
有没有更有效的方法(没有for循环?)?
谢谢

您可以沿第四维连接矩阵,然后沿第四维求和

res = sum(cat(4, C{:}), 4); 
以下是
C

res = sum(cat(ndims(C{1}) + 1, C{:}), ndims(C{1}) + 1);
如果您使用的是八度音阶,您只需使用
plus

res = plus(C{:});

不幸的是,最后一个选项在MATLAB上不起作用,因为MATLAB中的
plus
只接受两个输入参数。

太好了!非常感谢你!