我在for循环中使用fsolve。在某一点上,它找不到解决方案,并给我以下输出。如果找不到解决方案,则fsolve停止
是否有可能从执行进一步的代码,如果fsolve不能找到一个解决办法停止MATLAB?
我在for循环中使用fsolve。在某一点上,它找不到解决方案,并给我以下输出。如果找不到解决方案,则fsolve停止
是否有可能从执行进一步的代码,如果fsolve不能找到一个解决办法停止MATLAB?
当然。只需使用额外fsolve
输出:
[x, fval, exitflag, output] = fsolve(...)
if exitflag <= 0
return
end
您可以相应地调整基于documentation
概括有这么fzero返回一个exitflag标志值的条件。如果不是1,则遇到了一些问题:
https://www.mathworks.com/help/matlab/ref/fzero.html
例如:
func = @(x) x^2 +1
[x, fval, exitflag, output] = fzero(func, 0)
if exitflag ~= 1
disp('no solution was found, terminating further execution');
return
end
感谢,快速回复。我接受了另一个答案,因为它更快一点,对不起。 – PalimPalim