📜  matlab 函数句柄 - Matlab (1)

📅  最后修改于: 2023-12-03 15:02:53.580000             🧑  作者: Mango

Matlab函数句柄 - Matlab

在 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 函数句柄是一种灵活而强大的功能,可以简化代码并提高代码复用性。