我有一个输出6×6矩阵的函数d2l_dgamma_dgammaT
。我想在不使用下面的for循环的情况下对这些矩阵执行逐元素加法。 A_gamma_temp是包含6x6矩阵的单元阵列,A_gamma应该是包含所有这些矩阵的元素和的单个6x6矩阵。我怎么能这样做?
A_gamma_temp = cellfun(@(a,b) d2l_dgamma_dgammaT(sigma_sq, tau_sq, a, b), ...
wb_sorted, zb_sorted, 'uniformoutput', false);
A_gamma = zeros(6,6);
for ii = 1:size(A_gamma_temp, 1)
A_gamma = A_gamma + A_gamma_temp{ii};
end
答案 0 :(得分:1)
假设A_gamma_temp
是一个包含6×6矩阵的单元格数组,并且A_gamma
应该是一个6×6矩阵,它是所有这些单独矩阵的总和,这应该可行:
A_gamma = sum(cat(3, A_gamma_temp{:}),3)
为了将来参考,如果您
,这确实有帮助请记住,我们知道没有关于您想要做什么或已经做过什么。如果你花更多的时间来制定问题,你就更有可能得到一个好的答案,而且也更快。
答案 1 :(得分:0)
如果您正在寻找单个数字结果,您也可以尝试这个 -
A_gamma = sum(vertcat(A_gamma_temp{:}))
由于OP有这个 - A_gamma = zeros(6,6);
,我不确定是否需要一个数字。