方法1:函数文件+函数名调用
比如我想要定义如下函数
f(x)=x2+1 可以现在脚本中写一个fun函数,并将其存储为函数同名文件fun.m
function y=fun(x) y=x^2+1;end
然后就可以通过函数名调用函数,如下
>> fun(2)ans = 5
方法2:使用inline内联函数
比如我想要定义如下函数,有两个自变量
f(x)=xsin(α) 可以直接在脚本中通过inline方法定义,无需另外再建.m文件
f = inline('x*sin(alpha)','x','alpha')
函数调用方式1
>> f(3, 90)ans = 2.6820
函数调用方式2 – 通过feval函数
>> feval(f, 10, 30)ans = -9.8803
方法3:匿名函数
什么是匿名函数?
匿名函数是不存储在程序文件中、但与数据类型是
function_handle
的变量相关的函数。匿名函数可以接受多个输入并返回一个输出。它们可能只包含一个可执行语句。
例如,创建用于计算平方数的匿名函数的句柄:
sqr = @(x) x.^2;
变量 sqr
是一个函数句柄。@
运算符创建句柄,@
运算符后面的圆括号 ()
包括函数的输入参数。该匿名函数接受单个输入 x
,并显式返回单个输出,即大小与包含平方值的 x
相同的数组。
通过将特定值 (5
) 传递到函数句柄来计算该值的平方,与您将输入参数传递到标准函数一样。
>> a = sqr(5)a = 25
方法4:syms+subs
用syms定义一个符号表达式,用subs调用:
syms f(x) x %定义符号f(x) = 1/(1+x^2); %定义符号表达式subs(f, ‘x’, 代替x的数值或符号)
注:对于在syms中已经定义过的符号变量,在subs中进行替代时,单引号可以省略。但是,如果在syms后又被重新定义为其他类型,则必须加单引号,否则不可替换。 这种函数定义方法的特点是,可以用符号进行替换。
示例:
syms x ysyms f(x, y)f = cos(x) + sin(y)subs(f, [x, y], [sym('alpha'), 2])
执行以上代码:
f = cos(x) + sin(y) ans = sin(2) + cos(alpha