Matlab:将总和放入函数中

cer*_*v21 2 matlab function octave

我想通过函数来​​近似数值数据:

f = @(a0,xdata) a0(1).*xdata + ... + a0(n) .* xdata.^n
Run Code Online (Sandbox Code Playgroud)

我该怎么做,因为 for 循环在函数中不起作用?我知道有一个内部多项式函数,但由于我可能想将总和扩展到非整数指数,我想编写自己的函数。

Ale*_*lor 7

f = @(a0,xdata) sum(a0 .* xdata.^(1:length(a0)));
Run Code Online (Sandbox Code Playgroud)

如果您坚持将其编写为匿名函数,但我建议将其编写为具有函数体的多行函数:

function out = f(a0,xdata)
    exponents = 1:length(a0);
    out = sum(a0 .*xdata .^ exponents);
end
Run Code Online (Sandbox Code Playgroud)