Matlab中cellfun输出的元素矩阵加法
我有一个输出6×6矩阵的函数Matlab中cellfun输出的元素矩阵加法,matlab,matrix,Matlab,Matrix,我有一个输出6×6矩阵的函数d2l_dgamma_dgammaT。我想在这些矩阵上执行元素加法,而不使用下面的for循环。_gamma_temp是包含6x6矩阵的单元数组,而_gamma应该是包含所有这些矩阵的元素和的单个6x6矩阵。我该怎么做 A_gamma_temp = cellfun(@(a,b) d2l_dgamma_dgammaT(sigma_sq, tau_sq, a, b), ... wb_sorted, zb_sorted, 'uniformoutput', false)
d2l_dgamma_dgammaT
。我想在这些矩阵上执行元素加法,而不使用下面的for循环。_gamma_temp是包含6x6矩阵的单元数组,而_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
假设
A_gamma_temp
是一个包含6×6矩阵的单元数组,并且A_gamma
应该是一个6×6矩阵,它是所有这些单独矩阵的总和,这应该可以工作:
A_gamma = sum(cat(3, A_gamma_temp{:}),3)
作为将来的参考,如果你
- 提供
- 以我们不必进行猜测和假设的方式制定您所需的输入/输出李>
记住,我们不知道你想做什么,或者你已经做了什么。如果你花更多的时间来阐述你的问题,你就更有可能得到一个好答案,也会更快。如果你想得到一个单一的数字结果,你也可以试试这个-
A_gamma = sum(vertcat(A_gamma_temp{:}))
因为OP有这个-
A_gamma=0(6,6)代码>,我不确定是否需要单个数字。伽马温度是大小为6x6或6x1的单元阵列?