我在 matlab 中进行了长时间运行的模拟,定期更新数据。我希望能够继续在不同的 Linux 桌面上工作,但我发现如果我不在它正在使用的桌面上,matlab 的速度会慢得像爬行一样。我认为这与它对渲染到不可见的图形或其他东西不满意有关。有其他人见过这个,或者更好地找到解决方案吗?我知道我可以在没有数据的情况下运行,但我真的想偶尔检查一下并查看数据以了解状态。
最佳答案
我在带有显示器的网络服务器上运行 matlab。我发现这些因素在显示图形的速度、与 matlab 交互等方面会产生影响。
我不使用桌面显示器运行 matlab。所以,我使用这个命令来运行matlab:
/apps/matlab/R2008b/bin/matlab -nosplash -nodesktop
没有可交互的 matlab 屏幕需要一些时间来适应。但是,现在我已经习惯了,我发现我可以更快地使用 matlab(即仅从命令行运行命令)。我仍然可以显示图形(-nodisplay
调用将停止该操作)并且事情似乎运行得很快。
我还会确保您在完成后清除该数字。我不确定,但我预计如果你不断地绘制一个图形,就会出现一些内存泄漏。你说你有一个长时间运行的模拟。我怀疑每次绘制后关闭图形可能会有所帮助。像这样:
for ii = 1:10
figure(1337);
plot(x,y)
drawnow
close(1337)
end
另一个选项是在不显示的情况下运行 (-nodisplay
),并在每次更新图形时打印文件。
for ii = 1:10
figure(1337);
set(1337,'visible','off')
plot(x,y)
drawnow
print(1337,'-dpng',filename.png);
close(1337)
end
然后,使用图像编辑程序在每次更新时显示输出图像。 例如,
eog filename.png
(您或许还可以编写一个简洁的小 shell 脚本,在每次更新图像时自动打开图像。)
关于linux - Matlab 在不同的 Linux 桌面上运行速度变慢,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16451894/