首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Matlab:如何捕捉警告

Matlab:如何捕捉警告
EN

Stack Overflow用户
提问于 2014-06-23 09:57:21
回答 2查看 7.9K关注 0票数 11

我正在MATLAB中运行一些数据处理工作,求解器使用反斜杠操作符。有时候,我会收到这样的警告:

代码语言:javascript
运行
复制
Warning: Rank deficient, rank = 1390, tol = 1.335195e-010.
Warning: Rank deficient, rank = 1386, tol = 1.333217e-010.

我想抓住这些警告。我正在尝试将警告转换为错误,然后捕获它,如这里所描述的“陷阱警告”:示例中的http://undocumentedmatlab.com/blog/trapping-warnings-efficiently,下面的字符串用于将警告转换为错误:

代码语言:javascript
运行
复制
s = warning('error', 'MATLAB:DELETE:Permission');

但是,我不知道用什么字符串来处理我的情况。我试着用

代码语言:javascript
运行
复制
s = warning('error', 'Warning: Rank deficient’);

但是,这是行不通的。任何帮助都将不胜感激。

你好,DK

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-06-23 11:52:09

您需要指定警告标识符,而不是警告文本。您可以使用lastwarn的两个输出形式找到标识符。

代码语言:javascript
运行
复制
[msgstr, msgid] = lastwarn

在您的例子中,我认为您想要的标识符是'MATLAB:rankDeficientMatrix'

票数 11
EN

Stack Overflow用户

发布于 2014-06-23 10:04:33

您可以尝试使用lastwarn作为替代方案。除法之后,调用它并将其与strcmp进行比较,并将其与通常的警告消息进行比较,如果这是您想要的警告消息,您可以使用error手动抛出您想要的错误。

正如您所建议的:您可以重置lastwarn,抛出一个空警告warning('')

票数 7
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24363086

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档