matlab中函数组求值,自定义函数求值的若干方法

三、用内联函数命令 inline

定义格式1:

fun=inline(字符串表达式)

执行后,命令窗会出现如下内容:

fun =

Inline function:

fun(var,...) = 字符串表达式

其中,“var,...”是内联函数 fun 的形参变量列表,各变量的名称和“字符串表达式”中出现的是一样的,是一一对应的。在定义格式1下,它们的排列顺序是按字母表顺序排列的。

定义格式2:

fun=inline(字符串表达式,'var',...)

执行后,命令窗会出现如下内容:

fun =

Inline function:

fun(var,...) = 字符串表达式

定义格式2与定义格式1的区别在于,定义格式2指定了形参变量列表中变量的排列顺序,它们按指定的顺序排列,而不再是按默认的字母表顺序排列。但同定义格式1一样,各变量的名称还是和“字符串表达式”中出现的是一样的,还是一一对应的。

调用格式:

fun(a,...)

“a,...”是实参变量列表,不管内联函数是按哪种格式定义的,它们被内联函数调用时,实参变量列表“a,...”中的第一个代表形参变量列表“var,...”中的第一个,实参变量列表“a,...”中的第二个代表形参变量列表“var,...”中的第二个,依此类推。然后再根据形参变量列表“var,...”与字符串表达式中各变量之间的一一对应关系,进行替换取值,从而得出函数值。

“a,...”的名称可以任意取,没必要和“var,...”相同。

1、输入参数“字符串表达式”可以是函数字符串表达式,或是代表它的标识符(按方法一定义的字符串表达式的标识符 f)。

2、函数表达式采用数组算法时,定义的是函数矩阵(矩阵的元素是函数),若采用矩阵算法,则定义的是矩阵函数(自变量是矩阵的函数)。

3、将内联函数保存在工作空间,可多次使用。

4、与 inline 相关的结果命令:

argnames(fun):返回内联函数中的形参变量列表

char(fun):将内联函数转换成字符串

formula(fun):同 char(fun) 作用一样

例子:

% 采用数组算法

>> u=[1 2];v=[2 3];

% 定义格式1

>> f = inline('3*sin(2*x.^2)+y')

f =

Inline function:

f(x,y) = 3*sin(2*x.^2)+y

>> f(u,v)

ans =

4.7279    5.9681

>> f = inline('3*sin(2*y.^2)+x')

f =

Inline function:

f(x,y) = 3*sin(2*y.^2)+x

>> f(u,v)

ans =

3.9681   -0.2530

% 定义格式2,指定变量顺序

>> f = inline('3*sin(2*x.^2)+y','y','x')

f =

Inline function:

f(y,x) = 3*sin(2*x.^2)+y

>> f(u,v)

ans =

3.9681   -0.2530

>> f = inline('3*sin(2*y.^2)+x','y','x')

f =

Inline function:

f(y,x) = 3*sin(2*y.^2)+x

>> f(u,v)

ans =

4.7279    5.9681

% 采用矩阵算法

>> u=[1 2;2 3];v=[2 3;3 4];

% 定义格式1

>> f = inline('3*sin(2*x^2)+y')

f =

Inline function:

f(x,y) = 3*sin(2*x^2)+y

>> f(u,v)

ans =

0.3679    2.1363

2.1363    6.2877

% 定义格式2,指定变量顺序

>> f = inline('3*sin(2*x^2)+y','y','x')

f =

Inline function:

f(y,x) = 3*sin(2*x^2)+y

>> f(u,v)

ans =

3.2877   -0.9753

-0.9753    2.2129

>> argnames(f)

ans =

'x'

'y'

>> char(f)

ans =

3*sin(2*x^2)+y

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值