Linux终端运行MATLAB代码时输出丢失、仅显示最后一行的问题求助
问题原因与解决方法
你的问题出在MATLAB脚本里的**回车符\r**上:
- 在Linux终端环境中,
\r的作用是将光标移到当前行开头,而非换行。后续执行的fprintf会从行首开始输出,直接覆盖之前的内容,因此最终只能看到最后一条输出。 - MATLAB GUI的命令窗口对
\r的解析逻辑不同,会将其当作换行处理,所以能正常显示所有输出。
解决步骤
直接把脚本里的\r替换成换行符\n即可,修改后的脚本如下:
% matlab_example_file.m a = 5; b = a*a; c = a*a*a; d = sqrt(a); fprintf('%4u square equals %4u \n', a, b) fprintf('%4u cube equals %4u \n', a, c) fprintf('The square root of %2u is %6.4f \n', a, d)
运行命令保持不变:
matlab2021a -nodesktop -nosplash -nodisplay -r "run('/path/to/matlab_file/matlab_example_file.m');exit;"
修改后,终端里每一条fprintf的内容都会单独占一行,不会被后续输出覆盖,就能看到全部预期结果了。
内容的提问来源于stack exchange,提问作者newstudent
相关产品推荐
相关产品推荐

