遇到feval和函数的问题

huangapple go评论48阅读模式
英文:

Having trouble with feval and function

问题

以下是翻译好的部分:

当我有我的函数 grad 如下:

function g = grad(x)
    g = [4*(x(1)-4)^3 ; 2*x(2)-6 ; 16*(x(3)+5)^3];
end

为什么当我尝试运行以下代码时会出现错误消息 "Not enough input arguments. Error in grad (line 2) g = [4*(x(1)-4)^3 ; 2x(2)-6 ; 16(x(3)+5)^3];"?

x = [4;2;-1];
feval(grad,x)

对于任何协助,我将不胜感激。

英文:

While I have my function grad as

function g = grad(x)
    g = [4*(x(1)-4)^3 ; 2*x(2)-6 ; 16*(x(3)+5)^3];

end

Why do i have a error message "Not enough input arguments. Error in grad (line 2) g = [4*(x(1)-4)^3 ; 2x(2)-6 ; 16(x(3)+5)^3];" when I try to run the code

x = [4;2;-1];
feval(grad,x)

Any assistance would be appreciated.

答案1

得分: 2

当作为feval的参数传递时,函数名应作为字符串或函数句柄传递。所以:

x = [4;2;-1];
feval("grad", x)

(注意在"grad"周围的引号)。

或者:

x = [4;2;-1];
feval(@grad, x)
英文:

When passed as an argument of the feval, the function name should be passed as a string or as a function handle. So:

x = [4;2;-1];
feval("grad", x)

(Notice the quotation marks around the "grad").

Or:

x = [4;2;-1];
feval(@grad, x)

huangapple
  • 本文由 发表于 2023年2月27日 14:39:27
  • 转载请务必保留本文链接:https://go.coder-hub.com/75577389.html
匿名

发表评论

匿名网友

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

确定