Matlab中的inline函数
1.有时为了描述某个数学函数的方便,可以用inline()函数来直接编写该函数,形式相当于M-函数,但无编写一个真正的MATLAB文件,就可以描述出某种数学关系。其调用格式为fun=inline(‘函数内容’,自变量列表)
2. 匿名函数是MATLAB 7.0版提出的一种全新的函数描述形式,其基本格式为f=@(变量列表)函数内容,例如,f=@(x,y)sin(x.^2+y.^2)。更重要的,该函数允许直接使用MATLAB工作空间中的变量。
2. 匿名函数是MATLAB 7.0版提出的一种全新的函数描述形式,其基本格式为f=@(变量列表)函数内容,例如,f=@(x,y)sin(x.^2+y.^2)。更重要的,该函数允许直接使用MATLAB工作空间中的变量。
许多Matlab函数(特别是数值计算方面的)可以函数句柄(function handle)或内联对象(inline object)作为参数。我们以quad函数为例,这个函数使用Simpson算法求函数的数值积分。它的一种调用形式是:
quad(fun, a, b)
其中,fun可以是指向被积函数的函数句柄,或者含有被积函数的内联对象;a和b分别是被积区间的上、下限。考虑以下积分:
使用函数句柄的方法:
% 将下面到”% EOF”的代码保存为f.m
function y = f(x)
y = sin(x) ./ x;
% EOF
quad(@f, 1, 2)
ans =
0.6593
使用内联对象的方法:
quad( inline( ‘sin(x)./x’ )), 1, 2 )
ans =
0.6593
由于使用内联对象不需要另外建立m文件,所以比较方便,建议使用这种方法
quad(fun, a, b)
其中,fun可以是指向被积函数的函数句柄,或者含有被积函数的内联对象;a和b分别是被积区间的上、下限。考虑以下积分:
使用函数句柄的方法:
% 将下面到”% EOF”的代码保存为f.m
function y = f(x)
y = sin(x) ./ x;
% EOF
quad(@f, 1, 2)
ans =
0.6593
使用内联对象的方法:
quad( inline( ‘sin(x)./x’ )), 1, 2 )
ans =
0.6593
由于使用内联对象不需要另外建立m文件,所以比较方便,建议使用这种方法
再例如,在使用ode45函数的时候,定义函数往往需要编辑一个 .m文件来单独定义,这样不便于管理文件,这里可以使用 inline定义函数,例子如下:
ff=inline(‘[y(2);c2*sin(x*pi*3/4)-y(2)/2-sin(y(1))]’,…
‘x’,’y’,’flag’,’c2′);
[T,Y]=ode45(ff,[0,12],[0.1;0],[],c2);
ff=inline(‘[y(2);c2*sin(x*pi*3/4)-y(2)/2-sin(y(1))]’,…
‘x’,’y’,’flag’,’c2′);
[T,Y]=ode45(ff,[0,12],[0.1;0],[],c2);
转载请注明:数据分析 » Matlab中的inline函数_matlab中inline函数