回答
@運算符創建一個函數句柄,它允許您輕鬆創建並傳遞函數調用,如變量。它有許多很好的功能,但不幸的是,這些功能都不可用。這是因爲如你所懷疑的那樣,它直到版本7之後才被引入到matlab中,該版本在你之後立即發佈。
文檔說這是一個function handle。
它用於在Matlab中聲明Anonymous Functions。
我認爲這些條款是「Function Handle」。
實際上,它涵蓋了Matlab無法在任何M文件的任何位置聲明函數。
您可能會看到它在這裏: What is your favourite MATLAB/Octave programming trick?
我發現它是與「blockproc」命令一起在圖像處理中非常有用。
function_handle(@)在調用函數indirectlyexpand所有 頁語法 手柄= @functionname 手柄= @(arglist中)anonymous_function
說明
手柄= @functionname返回用於
手柄指定MATLAB®函數的句柄。
函數句柄是一個MATLAB值,它提供了一種間接調用函數的方法。您可以將調用中的函數句柄傳遞給其他函數(通常稱爲函數函數)。您還可以將函數句柄存儲在數據結構中供以後使用(例如,作爲Handle Graphics回調函數)。函數句柄是標準的MATLAB數據類型之一。
在創建函數句柄時,您指定的函數必須位於MATLAB路徑和創建句柄的代碼的當前範圍內。例如,只要您在定義該本地函數的文件中這樣做,就可以創建本地函數的句柄。當您評估函數句柄時,此條件不適用。例如,您可以使用函數句柄從單獨的(超出範圍)文件中執行本地函數。這要求該句柄是由本地函數(範圍內)創建的。
handle = @(arglist)anonymous_function構造一個匿名函數並返回該函數的句柄。函數的主體,在括號的右邊,是一個單獨的MATLAB語句或命令。 arglist是輸入參數的逗號分隔列表。通過函數句柄,句柄調用它來執行函數。
實例
實施例1 - 構建句柄命名函數 下面的示例創建用於隆起功能的功能句柄並將其分配給變量fhandle。
fhandle = @humps; 以與傳遞任何參數相同的方式將句柄傳遞給另一個函數。該示例將剛剛創建的函數句柄傳遞給fminbnd,然後在[0.3,1]區間內將其最小化。
X = fminbnd(fhandle,0.3%,1) X = 0.6370 的fminbnd函數評估@humps功能句柄。下面顯示了一小部分fminbnd文件。在第1行中,funfcn輸入參數接收傳入的函數句柄@humps。第113行中的語句評估句柄。
1 function [xf,fval,exitflag,output] = ... fminbnd(funfcn,ax,bx,options,varargin) 。 。 。 113 fx = funfcn(x,varargin {:});
我認爲更新的鏈接會比複製它更好。至少可以刪除「展開全部...」,「語法」等,並將其排列在頁面上以使其更具可讀性 – Adiel 2017-10-24 07:42:06
- 1. C++中的操作符「」是什麼?
- 2. %=操作符的作用是什麼?
- 3. 爲什麼&&操作符不能在Matlab/Octave中工作?
- 4. 函數調用中,操作符是什麼,操作數是什麼?
- 5. 簡單操作在Matlab中做什麼?
- 6. >>操作符/操作數/修飾符是做什麼的?
- 7. C&C++中的'&'是什麼,它在perl中的等價操作符是什麼?
- 8. 什麼是++操作符在Python中做什麼?
- 9. 這個操作符是什麼意思?
- 10. 什麼是觸發器操作符?
- 11. 這個操作符是什麼,「??」
- 12. 這個操作符是什麼意思?/=
- 13. 是什麼意思「?:」操作符PHP
- 14. Matlab的冒號操作符稱爲什麼?
- 15. Python 3中的@操作符/分隔符是什麼?
- 16. 什麼操作都是原子操作
- 17. '&'和'%'在操作符中的含義是什麼 - &, - %,+&,+%在Chisel3中?
- 18. 什麼是matlab中的-0.0?
- 19. matlab中的「norm」是什麼?
- 20. C中的這個操作是什麼?
- 21. Ruby中的操作順序是什麼?
- 22. 此操作中的X是什麼?
- 23. CPU中的ALU操作是什麼?
- 24. C++類,朋友操作符與外部操作符的區別是什麼
- 25. 對於返回void的函數,什麼是無操作符操作符?
- 26. C#=>操作符有什麼作用? (BESIDES是一個lambda操作符)
- 27. MATLAB邏輯操作符:&& vs&
- 28. Matlab字符串操作
- 29. 在C++中重載操作符的目的是什麼?
- 30. RxSwift中的RxJava onErrorResumeNext操作符的模擬是什麼?
實際上,它被稱爲函數句柄(不是句柄),它使用類似的命名約定,因爲圖形對象也有'句柄'。 – MatlabDoug 2010-01-20 16:41:59
修復它,謝謝。 – Royi 2010-01-20 16:47:22