feval函数的使用

时间:2024-02-29 20:17:25

  feval函数的作用就是求函数值,

基本格式为:

  [y1,..,yn] = feval(F,x1,...,xn)F是需要使用函数的函数名,或者句柄;xi是函数的参数,yi是函数的返回值。

举例:

  假设需要调用的函数foo定义如下: 

1 function x=foo(a,b) 
2     x=a*b;

若在main函数中用feval调用foo,可以有以下几种方式 

  • result=feval(\'foo\',3,15); 
  • result=feval(@foo,3,16); %这里@foo即句柄 
  •  若调用的函数要作为main的参数,则 
1 function result=main(f) 
2 result=feval(f,3,10); 

  然后调用main时将\'foo\'传入即可 。

提示:

  • 如果您有函数句柄,不需要使用 feval ,因为您可以直接调用函数句柄。以下语句的结果是相等的。

    fh = @eig;
    [V,D] = fh(A)
    [V,D] = feval(@eig,A)
  • 要使用 feval 计算嵌套或局部函数,请使用函数句柄而不是函数名称。

Feval函数的优点在于:

  便于将同一类函数功能统一,当函数作为参数传入主函数中时,使用feval函数可以较好的调用函数参数。如:

主体函数:

function [p0,err,k,y]=Newton_Raphson(f,df,p0,delta,epsilon,max1)

  feval(f,p0)

  feval(df,p0)

函数调用:

  g=@(t,x)1/(1+x^2);

  [p0,err,k,y]=newton(\'atan\',g,pi,0.00001,0.00001,10000)

  这里的f,df代表的都是一个函数的形参。该函数是用牛顿-拉夫森方法计算函数的近似值,故可以将任意函数作为形参传入该函数中。

  在这里,使用feval函数调用,比直接调用函数更好。