[英]Call arguments in a function in MATLAB
我試圖在 MATLAB 中運行這個 function:
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 應該是 function 的參數。 怎么可能不被認可? 謝謝您的幫助!
如果我在 function中分配值 d ,我的 Matlab 似乎一切正常,你在哪里定義變量d
,如果它是一個全局變量,它必須定義為:
global d;
這是我的結果:
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.