2017-07-06 35 views
1

我正在運行fmincon。對於網格中的某些點,沒有解決方案exit flag=-2,並且有時需要半小時才能返回標誌並開始網格中的下一個點。然而,對於其他點,答案在不到一分鐘內就能顯示出來。 所以我認爲減少不必要的運行時間的一種可能的解決方案是基於網格中每個點的經過時間來定義停止標準。換句話說,如何在運行T sec的時間後停止fmincon如何在運行經過T秒後停止fmincon?

回答

1

您可以使用output function

tic 
fmincon(.....,optimset('OutputFcn',@outfun,'MaxFunEval',20000)) 

outfun.m:

function stop = outfun(x,optimValues,state) 
stop = toc>T;