【发布时间】:2012-10-30 10:25:01
【问题描述】:
我一直在尝试使用以下代码来查找函数在输入为向量且函数返回标量的特定点处的梯度。
以下是我尝试计算梯度的函数。
%fun.m
function [result] = fun(x, y)
result = x^2 + y^2;
这就是我所说的渐变。
f = @(x, y)fun(x, y);
grad = gradient(f, [1 2])
但我收到以下错误
octave:23> gradient(f, [1 2])
error: `y' undefined near line 22 column 22
error: evaluating argument list element number 2
error: called from:
error: at line -1, column -1
error: /usr/share/octave/3.6.2/m/general/gradient.m at line 213, column 11
error: /usr/share/octave/3.6.2/m/general/gradient.m at line 77, column 38
我该如何解决这个错误?
【问题讨论】:
-
f = %(x, y)fun(x, y);那%应该是@,不是吗? -
是的,抱歉,应该是@。已进行编辑。
-
你不行吗:
f = @(x,y) [x^2 + y^2]; grad = gradient(f(1, 2)) -
@zeffii,我想这会给出
0向量(常数的导数)。
标签: gradient octave function-handle