feval函數的使用


  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函數調用,比直接調用函數更好。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM