2013-06-03 73 views
0

我定義了一個Cd矩陣,然後調用lsqlinMATLAB lsqlin錯誤:超過迭代次數options.MaxIter

lb = zeros(2, 1); 
x = lsqlin(C, d, [], [], [], [], lb, []); 

我得到x一個解決方案,但一條消息:

Maximum number of iterations exceeded; increase OPTIONS.MaxIter .

function page表示這與融合解決方案並不相同。但我不知道如何增加OPTIONS.MaxIter,或者是什麼導致了警告。任何建議將是偉大的,謝謝!

回答

0

MaxIter是一個可以包含在函數調用中的選項。這是從documentation報價:

x = lsqlin(C,d,A,b,Aeq,beq,lb,ub,x0,options) 

而「options」可以用來提高MaxIter超越它的200默認值。然而,這必須使用optimoptions進行:

options = optimoptions('lsqlin','MaxIter',1500) 

options = optimoptions(@lsqlin,'MaxIter',1500) 

或者,你可以嘗試使用optimtool GUI。如果您不想從GUI運行問題,請將options變量導出到您的工作區並聲明爲global

+0

謝謝!我使用GUI,將選項變量導出到工作區,並將其聲明爲全局。 – dustynrobots

1

根據matlab的版本,您需要查看optimset函數來實現此目的。 optimoptions是可能不適用於您的新功能。

它有一個類似的語法:

options = optimset('MaxIter',1500) 

你可以閱讀更多關於設置選項here

+0

@ Schorsch有趣的我一直在r2012a使用它。去圖... – Rasman

+0

但是,如果我仔細閱讀,我會注意到它指定使用工具箱此功能確實可以用於其他功能。我會刪除我的評論 – Schorsch