在多行上打印警告消息

时间:2017-06-04 21:56:50

标签: matlab

我正在尝试打印一个有点长的警告消息并包含2个可变调用。这是我的代码:

warning( 'MATLAB:questionable_argument', ...
           'the arguments dt (%d) and h (%d) are sub-optimal. Consider increasing nt or decreasing nx.', ...
           dt, h )

显然,在查看MATLAB代码时,文本行向右延伸。我该如何打破它以便它包装得很好?我尝试过多种方法,但不断遇到语法错误。

3 个答案:

答案 0 :(得分:2)

正如评论中所建议的那样,只需在要打破该行的位置插入\n即可。您还可以为文本使用变量,以便在代码中轻松阅读:

txt = sprintf(['the arguments dt (%d) and h (%d) are sub-optimal.\n'... 
    'Consider increasing nt or decreasing nx.'],dt,h);
warning( 'MATLAB:questionable_argument',txt)

答案 1 :(得分:0)

比EBH提供的更简单的版本如下所示:

str1 = 'text 1';
str2 = 'text 2';
str3 = 'etc.';
str = sprintf('\n%s \n%s \n%s \n',str1,str2,str3);
warning(str)

答案 2 :(得分:0)

如果您只是在警告字符串中嵌入\n之类的转义字符,则无效:

warning('Hi there.\nPlease do not do that.')

只会打印出来:

  

警告:你好。\ n请不要那样做

但是,如果使用sprintf预先设置文本格式,则所有转义字符都可以使用。例如:

warnText = sprintf('Hi there.\nPlease do not do that.');
warning(warnText)

制作你想要的东西:

  

警告:你好。
  请不要这样做。