繁体   English   中英

在matlab中定义使用函数作为参数的函数

[英]Defining function in matlab which uses a function as a parameter

我想定义一个这样的函数:

function f = f1(fun,a,b,c)
f = c*fun(a+b);

这里fun是我在使用函数f时会传递的一些函数。 我怎样才能在Matlab中做到这一点?

你试过吗? 学习像matlab这样的工具的最好方法就是尝试一下!

实际上,您甚至不需要创建m文件功能。 我会在这里使用函数句柄。

fun = @(x) sin(x);
f1 = @(f,a,b,c) c*f(a+b);
f1(fun,2,3,4)

ans =
      -3.8357

我本可以将f1定义为m文件函数,但这需要我保存文件。 何必呢?

您正在寻找的是功能句柄

您可以通过在函数名前面放置“at”符号('@')来获取函数的函数句柄(在下面的例子中为sqrt ):

a = 1;
b = 2;
c = 3;
fun = @sqrt;        % obtain the function handle of sqrt()
f = f1(fun, a,b,c); % pass the function handle of sqrt() into your function f1().

当您使用fun ,就好像您正在使用sqrt函数一样。

有关更多详细信息,您还可以参考另一个Stackoverflow问题: MATLAB中的函数句柄

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM