0

我必须对多个向量求和,但它们的数量会有所不同。

我有:

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)

我怎么做?

4

2 回答 2

3

如果您将所有向量存储在一个矩阵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
于 2013-10-27T16:37:02.070 回答
2

尝试这个:

sum(arrayfun(@(i) eval(['g' num2str(i)]),1:n))

(对所有具有名称模式 gX 的标量求和,其中 X=1...n)

于 2013-10-27T13:59:16.057 回答