如何在MATLAB中加入一个系列

时间:2014-08-19 13:00:41

标签: matlab for-loop sum series

我有一个系列,我不知道如何在我的for循环中将元素加在一起。 enter image description here

for j=1:50
    E=a(j,1).*(x.^j)
    (what should I do now)
end

提前致谢

3 个答案:

答案 0 :(得分:5)

为了完整起见,我将添加矢量化答案:

j = 1:50
E=sum(A.*(x.^j)) %//Assuming you have an n-by-1 vector of coefficients call A and x is a constant

这样你根本不需要循环,通常是首选的Matlab方法。一旦您了解了Matlab的基础知识,就应该重新考虑这一点。

答案 1 :(得分:2)

你必须:

1)分别存储每个元素,然后将它们一起添加,这样就不会在循环继续时覆盖它们的值。

这是一个非常简单的例子:

clear
clc


a = rand(50,1); % generate dummy values for the coefficients;
n = 50;

x = 3; % dummy x value

MySum = zeros(1,n);

for Counter = 1:n

    CurrentValue = a(Counter,1)*(x^Counter); % Calculate the current value 
    MySum(Counter) = CurrentValue; % Store in an array
end

TotalSum = sum(MySum) ;% Once the loop is complete, sum all the values together.

这不是最有效的方式。但是,它允许您访问为每次迭代计算的每个单独的总和,这可能在某种程度上有用。

2)或者,您可以简单地将每个“当前值”添加到先前计算的总和中,然后最终总和将是循环中计算的最后总和。:

MySum = zeros(1,n);

CurrentSum = 0; % Initialize CurrentSum.
for Counter = 1:n

    CurrentValue = a(Counter,1)*(x^Counter)
    CurrentSum = CurrentSum + CurrentValue
end

TotalSum = CurrentSum

所以基本上你的问题归结为:

E = E + a(j,1).*(x.^j)

对于一个简单的问题,这是一个很长的答案,对不起!希望索引和for循环的原则现在更加清晰:)

答案 2 :(得分:1)

E = 0;
for j=1:50
    E= E +a(j,1).*(x.^j);
end