英文:
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)
通过集体智慧和协作来改善编程学习和解决问题的方式。致力于成为全球开发者共同参与的知识库,让每个人都能够通过互相帮助和分享经验来进步。
评论