如何防止MATLAB循环崩溃

mat*_*ian 1 optimization matlab

我正在尝试在MATLAB中执行以下操作

调用循环 - for i=1:1000在循环内部我使用优化函数fminunc.优化在参数矢量上,其中一个参数出现在函数的矩阵中.现在似乎fminunc调用一个算法来反转矩阵然后搜索最小值.会发生的是,当搜索最小值使得矩阵不可逆时,并且当MATLAB尝试反转矩阵时,它会发出错误并且循环停止.有没有办法可以为此调整?或者可能不那么理想,我可以做到这样,只要发生这种情况,MATLAB就会忽略i的那个值的优化并继续i+1吗?

bga*_*ath 6

您可以将逻辑包含在try/catch块中的循环内.在catch块内部,什么都不做,所以它将忽略错误并转移到下一个循环迭代.

for i = 1:1000
   try
     ...
     ...
     ...
   catch
     % nothing..
   end
end
Run Code Online (Sandbox Code Playgroud)