使用pcg时跳过警告消息

时间:2015-09-15 12:09:33

标签: matlab warnings

我正在使用pcg迭代方法解决方程 conn As New ADODB.Connection ,如下所示:

Ax=b

在每次计算之后,命令窗口中会显示一条消息,指示已经或未达到收敛。 我试图禁用此消息,因为我在运行时打印出有关我的代码的其他重要信息,而这些信息在pcg警告消息之间丢失了!

通过 flag 选项,我试图克服这个问题,但我无法做到。如果有人知道如何禁用这些消息,我将不胜感激。

2 个答案:

答案 0 :(得分:3)

实际上,pcg没有发出警告,它会输出" normal"使用sprintf将文本发送到命令窗口。按照scmg的建议禁用所有警告不会有帮助(+请不要关闭所有警告...很容易找出它是什么警告和在这种情况下仅禁用该类型的警告。)

通过查看pcgedit pcg)的源代码或在MATLAB中快速尝试它,您会发现调用x = pcg(...)将创建此输出消息,同时调用{{ 1}}不会创建该输出。这可能是因为如果你只使用输出[x, fl, rr, it, rv] = pcg(...),你可能会对这个收敛信息感兴趣,而如果你把它们保存在变量中,你可能会做一些智能检查以确保收敛,因此不要#&# 39; t需要控制台中的值。

优雅的方式:调用x并将此诊断信息保存到变量中

pcg

检查MATLAB中的收敛性!否则会发出警告或错误!

快速'脏:如果您只是假设一切都能在所有条件下都能正常运行,那么只需忽略这些值,而不是将它们全部保存到变量中:

[x, fl, rr, it, rv] = pcg(A,b,tol,maxit);

答案 1 :(得分:0)

您可以通过以下方式禁用所有警告:

warning('off','all')

可以找到其他抑制警告的选项here