在MatLab中调用函数中的参数

vlju58qv  于 2022-11-15  发布在  Matlab
关注(0)|答案(1)|浏览(273)

我尝试在MatLab中运行此函数:

function llik = log_likelihood(p)
global d;
N = length(d);
tau = fzero(@(t) (t - (t^2 * p + 1 - p) / (2 * (t * p + 1 - p))), [0,1]);

loglik = 0;
for i = 1 : N
    loglik = loglik + log(isnan(d(i)) * (1 - p * (1 - tau) + ~isnan(d(i))* p * (1 - tau)));
end

llik = loglik / N;
end

这里,p是一个标量。MatLab给了我一个错误警告:

Error using fzero>localFirstFcnEval
FZERO cannot continue because user-supplied function_handle ==>
@(t)(t-(t^2*p+1-p)/(2*(t*p+1-p))) failed with the error below.

 Unrecognized function or variable 'p'.

我很困惑,因为p应该是函数的自变量。它怎么可能不受欢迎呢?谢谢你的帮助!

zbdgwd5y

zbdgwd5y1#

如果我在函数中赋值d,在其中定义变量d,如果它是全局变量,则必须定义为:

global d;

这是我的结果:

相关问题