2010-01-20 71 views

回答

17

@運算符創建一個函數句柄,它允許您輕鬆創建並傳遞函數調用,如變量。它有許多很好的功能,但不幸的是,這些功能都不可用。這是因爲如你所懷疑的那樣,它直到版本7之後才被引入到matlab中,該版本在你之後立即發佈。

7

它用於在Matlab中聲明Anonymous Functions

我認爲這些條款是「Function Handle」。

實際上,它涵蓋了Matlab無法在任何M文件的任何位置聲明函數。

您可能會看到它在這裏: What is your favourite MATLAB/Octave programming trick?

我發現它是與「blockproc」命令一起在圖像處理中非常有用。

+0

實際上,它被稱爲函數句柄(不是句柄),它使用類似的命名約定,因爲圖形對象也有'句柄'。 – MatlabDoug 2010-01-20 16:41:59

+0

修復它,謝謝。 – Royi 2010-01-20 16:47:22

1

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 {:});

+0

我認爲更新的鏈接會比複製它更好。至少可以刪除「展開全部...」,「語法」等,並將其排列在頁面上以使其更具可讀性 – Adiel 2017-10-24 07:42:06

相關問題