我必须对多个向量求和,但它们的数量会有所不同。
我有:
g1 = [1 3 4 5 3 4 6 2 3 4 6 6]
g2 = ....
.
.
.
gn = [3 4 5 6 4 5 6 2 4 7 8 9]
我必须总结所有这些:
G=sum(g1 to gn)
我怎么做?
如果您将所有向量存储在一个矩阵g
中,每行一个向量,我会容易得多。那么想要的结果就是简单的sum(g)
。
如果您确实需要将每个向量放在不同的变量中,则可以eval
在循环内计算总和:
result = zeros(size(g1)); % initialize sum
for ii = 1:n
eval(['result = result + g' num2str(ii) ';']) % add ii-th vector to the sum
end
尝试这个:
sum(arrayfun(@(i) eval(['g' num2str(i)]),1:n))
(对所有具有名称模式 gX 的标量求和,其中 X=1...n)