1
如何在不使用for/while循環的情況下在MATLAB中求解這個求和?這裏C是一個向量(1 * N矩陣),n =長度(c),x是標量。 (1)* x^1 + c(2)* x^2 + c()* x^3 + .... + c(n)* x^n。Sum for Matlab without for/while循環
或者我可以創建一個所有元素等於x但隨着功率增加的矩陣,如x,x^2,x^3 ....?
如何在不使用for/while循環的情況下在MATLAB中求解這個求和?這裏C是一個向量(1 * N矩陣),n =長度(c),x是標量。 (1)* x^1 + c(2)* x^2 + c()* x^3 + .... + c(n)* x^n。Sum for Matlab without for/while循環
或者我可以創建一個所有元素等於x但隨着功率增加的矩陣,如x,x^2,x^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
不錯的選擇:)這只是我在這裏看到的直矢量乘法......? 'c * x。^(1:numel(c))''。其實這是你的第二選擇,在其他寫作... – Adiel
@Adiel好點,可能會稍快 –