Matlab中无for/while循环的求和

Matlab中无for/while循环的求和,matlab,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……。有几种方法: result=polyval(fliplr([0c]),x) result=sum(c.*x.^(1:numel(c)) result=sum(c.*cumprod(repmat(x,1,nu

如何在不使用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……。

有几种方法:

  • result=polyval(fliplr([0c]),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
不错的选择:)这只是我看到这里的直向量乘法<代码>c*x.^(1:numel(c))'
。实际上这是你的第二个选择,在其他写作中。。。