2017-05-13 59 views
-2

我想要在Matlab中計算函數句柄的漸變,以備後用。函數句柄的漸變

e.G:

fun = @(x) x(1)^2+ 2*x(2) 

grad_fun = @(x) gradient(fun(x)) 

如果我檢查這跟:grad_fun([1;1])我收到0

對於所有的價值觀,我得到的是零。

有人可以幫我嗎?

在此先感謝!

+0

'grad_fun([1; 10])'的結果是什麼? – Alexander

+0

結果是:ans = 0 – Sheosha

+1

如果你想計算grad_fun([1; 10]),首先這個過程是爲了好玩,因爲fun = @(x)x(1)^ 2 + 2x(2)和x = [ 1; 10]這樣好玩會很有趣([1; 2])= 1^2 + 2 * 2和fun = 5,梯度(5)或樂趣(任何標量數)將爲0(零) –

回答

0

內聯函數fun返回一個標量值。換句話說,你試圖獲得一個常量的漸變。 函數gradient的單參數必須是矩陣或行向量。有關詳細信息,請參閱MathWorks Documentation