在没有for / while循环的Matlab中求和

时间:2016-12-06 19:06:41

标签: matlab

如何在不使用for / while循环的情况下在MATLAB中求解此求和? 这里C是矢量(1 * N矩阵),n =长度(c),x是标量。 C(1)* X ^ 1 + C(2)* X ^ 2 + C()* X ^ 3 + ... + C(N)* X ^ N

或者我可以创建一个矩阵,所有元素都等于x,但功率越来越大,如x,x ^ 2,x ^ 3 ......?

1 个答案:

答案 0 :(得分:3)

有几种方法:

  • result = polyval(fliplr([0 c]), x);
  • result = sum(c.*x.^(1:numel(c)));
  • result = sum(c.*cumprod(repmat(x, 1, numel(c))));

例如,

c = [3 4 -5 2 3];
x = 9;

上述任何一项

result =
      186975

检查:

>> c(1)*x^1+c(2)*x^2+c(3)*x^3+c(4)*x^4+c(5)*x^5
ans =
      186975