Why does my objective function return complex?
10 ビュー (過去 30 日間)
古いコメントを表示
I have a likelihood function that I need to minimize. I use fmincon to search for the minimum. Iterations of fmincon sometimes show "Objective function returned complex; trying a new point…" But in my code I do not take square root of any variable. Why am I then getting this error? A second question is whether there is a counterpart of
dbstop if naninf
for "complex" like the
dbstop if complex
command? Or would
dbstop if error
do?
2 件のコメント
採用された回答
Matt J
2022 年 2 月 28 日
編集済み: Matt J
2022 年 2 月 28 日
There is no "dbstop if complex", but you can set a conditional breakpoints in your objective function to detect when theany particular value is complex.Or, insert a keyboard() command.
function fval=myobjective(x)
fval=....
if ~isreal(fval)
keyboard
end
end
4 件のコメント
Walter Roberson
2022 年 3 月 2 日
suggest you add a conditional breakpoint to trigger if any(imag(VALUE))
その他の回答 (0 件)
参考
カテゴリ
Help Center および File Exchange で Debugging and Analysis についてさらに検索
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!