Matlab 如何为单元格数组的每个元素求和相应的元素
我有一个单元数组C,每个元素是一个N1xN2xN3矩阵。 我需要将这些单元格中的所有对应元素相加,得到一个N1xN2xN3矩阵res,其元素等于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{:})
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
只接受两个输入参数。太好了!非常感谢你!