2016-01-18 57 views

回答

2

不能使用語法函數定義涉及@。匿名函數句柄將做的工作:

function x = SO_Example(h,gh) 
x = h(gh); 

而且你可以調用函數如下:

SO_Example(@(a)a.^2 , 2) 
ans = 4 

或者這樣:

h = @(a)a.^2; 
SO_Example(h,2) 

ans = 4 

額外的解釋請參見注釋

+0

爲了澄清,您可以添加解釋該參數解析器會嘗試解析「@()..東西」,而比將函數句柄傳遞給函數體。 –

+0

@CarlWitthoft理解Matlab背後的機制的好處。但是,除此之外,傳遞'@(...)'有什麼意義?參數是在函數執行之前不知道的東西。我認爲OP只是想告訴Matlab其中一個參數是一個函數。 – brainkz

相關問題