http://wenku.baidu.com/view/cc9b4308bb68a98271fefa6f.html (Matlab北航教程)
CH 7.6 函數(shù)句柄
函數(shù)句柄是matlab的一個數(shù)據(jù)類型,保存函數(shù)的路徑、視野、函數(shù)名及重載方式等。
使用函數(shù)句柄的優(yōu)點
1.使一些泛函指令工作更可靠
2.使函數(shù)調用象變量引用一樣方便
3.可獲得同名重載函數(shù)的信息
4.可在更大范圍內(nèi)調用各種函數(shù),提高軟件的重用性
5.提高函數(shù)調用速度。
一、函數(shù)句柄的創(chuàng)建與觀察
1.創(chuàng)建
handlef=@fname;
handlef=str2func(‘fname’)
例如:fhandle = @sin;
sin是matlab中自帶的正弦函數(shù),得到的輸出變量fhandle為sin函數(shù)的句柄。可以利用fhandle來調用sin函數(shù),例如下面的代碼:
fhandle(0)
上面語句得到的輸出代碼如下:
ans = 0
實際上,該程序中的語句fhandle(0)相當于語句sin(0)。
二、函數(shù)句柄的應用
[out1,ou2,…]=fname(in1,in2,…)
也可通過函數(shù)句柄來完成函數(shù)運算:
[out1,ou2,…]= handlef(in1,in2,…)
[out1,ou2,…]=feval(handlef,in1,in2,…)
http://www.ilovematlab.cn/thread-23048-1-1.html matlab 函數(shù)句柄@的介紹_什么是函數(shù)句柄
覺得自己很少用函數(shù)句柄,但是經(jīng)常遇到,所以在這里總結一下。
函數(shù)句柄:是包含了函數(shù)的路徑、函數(shù)名、類型以及可能存在的重載方法。
函數(shù)句柄必須通過專門的定義創(chuàng)建的,而一般的圖像的句柄是自動建立的。
創(chuàng)建函數(shù)句柄使用@或者str2func命令創(chuàng)建
執(zhí)行sin函數(shù) feval
feval('sin',pi/2) %查matlab幫助 feval 既可以,可以不必關心這個函數(shù)的使用
ans =
1
那么使用函數(shù)句柄有什么好處呢?
1、提高運行速度。因為matlab對函數(shù)的調用每次都是要搜索所有的路徑,從set path中我們可以看到,路徑是非常的多的,所以如果一個函數(shù)在你的程序中需要經(jīng)常用到的話,使用函數(shù)句柄,對你的速度會有提高的。
2、使用可以與變量一樣方便。比如說,我再這個目錄運行后,創(chuàng)建了本目錄的一個函數(shù)句柄,當我轉到其他的目錄下的時候,創(chuàng)建的函數(shù)句柄還是可以直接調用的,而不需要把那個函數(shù)文件拷貝過來。因為你創(chuàng)建的function handles中,已經(jīng)包含了路徑,比如說我創(chuàng)建了一個fun
h_fun=str2func('rei');
可以用functions來查看這個function,結果果然已經(jīng)包括了路徑。
functions(h_fun)
ans =
function: 'rei'
type: 'simple'
file: 'G:\program\serial232\rei.m'