尽管它的脚本工作正常,但MATLAB函数不起作用

时间:2016-05-25 15:34:58

标签: matlab function

此函数返回错误没有足够的输入参数

previous_date.Stub(x => x.Value).Return("20160525");

当我按照以下方式通过J和theta时:

function numgrad = computeNumericalGradient(J, theta)

SIZE=length(theta);
numgrad = zeros(SIZE,1);
perturb = zeros(SIZE,1);
e = 1e-4;
for p = 1:SIZE
    % Set perturbation vector
    perturb(p) = e;
    loss1 = J(theta - perturb);
    loss2 = J(theta + perturb);
    % Compute Numerical Gradient
    numgrad(p) = (loss2 - loss1) / (2*e);
    perturb(p) = 0;
end

end
function db = f(X)
db=X'*X;
end

但是这个脚本运行正常。

theta=[1; 2; 3];

这就是我调用我的功能的方式。

theta=[1; 2; 3];

SIZE=length(theta);
numgrad = zeros(SIZE,1);
perturb = zeros(SIZE,1);
e = 1e-4;
for p = 1:SIZE
    % Set perturbation vector
    perturb(p) = e;
    loss1 = f(theta - perturb);
    loss2 = f(theta + perturb);
    % Compute Numerical Gradient
    numgrad(p) = (loss2 - loss1) / (2*e);
    perturb(p) = 0;
end

我不明白脚本是如何工作的,因为脚本和函数的唯一区别是函数及其参数在脚本中不是任意的。

PS:我正在使用MATLAB 2014

0 个答案:

没有答案