MATLAB:和变量矢量数

时间:2013-10-27 13:46:08

标签: matlab vector sum

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

我有:

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)

我该怎么做?

2 个答案:

答案 0 :(得分: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

答案 1 :(得分:2)

试试这个:

  

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

(将所有带有名称模式gx的标量相加,其中X = 1 ... n)