📅  最后修改于: 2023-12-03 15:02:53.580000             🧑  作者: Mango
在 MATLAB 中,函数句柄是一种特殊的变量,它指向一个已定义的函数。函数句柄的语法为@function_name
,其中function_name
为已定义的函数名。
可以通过以下代码创建一个函数句柄:
my_func = @sin;
上述代码创建了一个指向 sin()
函数的函数句柄,并将其存储在my_func
变量中。函数句柄可以像普通函数一样使用,例如:
x = 0:0.1:pi;
y = my_func(x);
plot(x, y);
函数句柄可以作为参数传递给其他函数,例如:
function call_with_func_handle(func_handle, x)
y = func_handle(x);
plot(x, y);
end
上述代码定义了一个函数call_with_func_handle
,它接受一个函数句柄和一个向量x
作为输入。该函数将函数句柄应用于输入向量,计算输出向量,并绘制该函数的图像。可以使用以下代码调用该函数:
x = 0:0.1:pi;
call_with_func_handle(@sin, x);
函数句柄可以作为函数的输出返回。例如:
function my_func_handle = create_func_handle(func_name)
my_func_handle = str2func(func_name);
end
上述代码定义了一个函数create_func_handle
,它接受一个字符串func_name
,将其转换为函数句柄,并将其作为函数输出返回。可以使用以下代码调用该函数:
my_func = create_func_handle('sin');
x = 0:0.1:pi;
y = my_func(x);
plot(x, y);
除了指向已定义的函数的函数句柄之外,MATLAB 还支持匿名函数句柄。匿名函数句柄可以在需要时定义,并使用@
符号和输入参数声明。例如:
my_func_handle = @(x) x.^2 + 2*x + 1;
x = -5:0.1:5;
y = my_func_handle(x);
plot(x, y);
上述代码定义了一个匿名函数句柄 my_func_handle
,它计算 $x^2 + 2x + 1$,并将其应用于输入向量 x
,并在图表上绘制该函数。
MATLAB 函数句柄是一种灵活而强大的功能,可以简化代码并提高代码复用性。