【问题标题】:Matlab: Put a sum into a functionMatlab:将总和放入函数中
【发布时间】:2020-03-10 22:36:53
【问题描述】:

我想用一个函数来近似数值数据:

f = @(a0,xdata) a0(1).*xdata + ... + a0(n) .* xdata.^n

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

【问题讨论】:

  • 这应该是一个系列,即f = @(a0,xdata) a0(1)*xdata.^(n-1) + a0(2)*xdata.^(n-2) + ... + a0(n)?否则,我不确定... 是什么
  • “for 循环在函数中不起作用”当然可以!只是不在匿名函数中。写一个真正的函数!

标签: matlab function octave


【解决方案1】:
f = @(a0,xdata) sum(a0 .* xdata.^(1:length(a0)));

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

function out = f(a0,xdata)
    exponents = 1:length(a0);
    out = sum(a0 .*xdata .^ exponents);
end

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-12-09
    相关资源
    最近更新 更多