如何在Simulink仿真期间捕获所有警告?

Chr*_*isK 3 matlab warnings simulink try-catch

我想要捕捉在Matlab/Simulink模型模拟过程中发出的所有警告.模拟的结果应该是一系列警告,因为可能存在多个警告.

理想的代码看起来像这样(除了catch不能用于警告):

try
   sim('myModel');
catch warnings
   for i=1:length(warnings)
      <process each warning>
   end
end
Run Code Online (Sandbox Code Playgroud)

我尝试过的事情已经没有成功:

  • 将警告变为异常将无济于事,因为我只会收到第一个警告而不是所有警告.
  • 使用我自己的"@char\warnings.m"覆盖内置警告功能只会捕获我自己脚本中的警告,但不能捕获sim-function中的警告.
  • lastwarn 只会给我最后一条警告信息,而不是全部.

PS:我在Windows上使用Matlab 2010b.

Cle*_* J. 5

解决方法可以是在模拟之后记录simwith 的输出diary并分析文件(警告的格式非常规则).