使用 fprintf 时没有换行

Not getting a new line when using fprintf

我写了一个pyhtagorean值的小函数:

function c = pyth(a,b)
% Takes two inputs of same size and returns the pythagorean of the 2 inputs
if size(a) == size(b) % checks for same size
    c = sqrt(a.*a + b.*b);  % calculates the pythagorean value
else
    fprintf('Error: Input sizes are not equal'); % returns if sizes are not the same
end

它工作正常,但在它 returns 之后,“>>”与我的输出在同一行,而不是输出下方的新行。这只是 fprintf 的情况。这里:

>> pyth([1 2;3 4],[5 6;7 8])
ans =
    5.0990    6.3246
    7.6158    8.9443
>>
>> pyth([1 2],[1 2;3 4])
Error: Input sizes are not equal>> 

我该如何解决这个问题?

使用 \n 作为换行符:

fprintf('Error: Input sizes are not equal\n');

fprintf 通常用于写入文件(因此 f 开头)。写入(文本)文件时,确保 OS-independent 换行符的方法是在字符串末尾添加 \r\n(又名 CRLF,或 [char(10) char(13)])。打印到控制台时,这似乎并不重要(即 \n 也适用于 Linux 上的 MATLAB 运行)。

几个提示:

  • 您可以改用 disp or display,因为他们会为您添加换行符。
  • 如果要显示错误,为什么不用error
  • 如果您使用 fprintf 打印错误,您可能希望从 fprintf(2, ... ) 开始,因为这会将文本打印到标准错误,使其成为 error-colored(通常为红色)。