【发布时间】:2016-01-18 10:55:29
【问题描述】:
是否可以在 Matlab 中定义带有函数处理程序的函数作为参数?
我试过了
function x = name(@f,gh)
但我收到一条错误消息,指出“@”处的语法无效。
【问题讨论】:
是否可以在 Matlab 中定义带有函数处理程序的函数作为参数?
我试过了
function x = name(@f,gh)
但我收到一条错误消息,指出“@”处的语法无效。
【问题讨论】:
您不能在函数定义中使用涉及@ 的语法。匿名函数句柄可以完成这项工作:
function x = SO_Example(h,gh)
x = h(gh);
您可以按如下方式调用该函数:
SO_Example(@(a)a.^2 , 2)
ans = 4
或者像这样:
h = @(a)a.^2;
SO_Example(h,2)
ans = 4
请参阅 cmets 以获得更多解释
【讨论】:
@(...) 的意义何在?参数是在函数执行之前不确切知道的东西。我认为 OP 只是想告诉 Matlab 一个参数是一个函数。