簡體   English   中英

在 MATLAB 中的 function 中調用 arguments

[英]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;

這是我的結果:

分配 d 變量的結果

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM