这里有必要介绍下内联函数,c++也有,应该说好多编程语言都有。
抄来一段:
在matlab命令窗口、程序或函数中创建局部函数时,可用inline。优点是不必将其储存为一个单独文件。在运用中有几点限制:不能调用另一个inline函数,只能由一个matlab表达式组成,并且只能返回一个变量—显然不允许[u,v]这种形式。因而,任何要求逻辑运算或乘法运算以求得最终结果的场合,都不能应用inline。除了这些限制,在许多情况下使用该函数非常方便。
Inline函数的一般形式为:
FunctionName=inline(‘任何有效的matlab表达式’, ‘p1’,’p2’ ,….) ,其中‘p1’,’p2’ ,…是出现在表达式中的所有变量的名字。
如:(求解F(x)=x^2*cos(a*x)-b ,a,b是标量;x是向量 )
在命令窗口输入:
Fofx=inline(‘x .^2*cos(a*x)-b’ , ‘x’,’a’,’b’);
g= Fofx([pi/3 pi/3.5],4,1)
系统输出为:g=-1.5483 -1.7259
*****************************************************
feval函数如何理解
feval函数的最通常的应用是以下形式:
feval(‘functionname’,parameter),举个简单的例子:
比如要计算sin(2),当然可以直接用命令y=sin(2);利用feval,还可以这样来做:
y=feval(‘sin’,2);另外这里的函数名字还可以是一个函数句柄,即h=@sin;
y=feval(h,2);或者直接写成y=feval(@sin,2);
2.求
函数的极值点和最大值
比如说y=x^3+x^2+1,怎样用matlab来算它的极值和最大值?