0

我在 matlab 中有一个长时间运行的模拟,它会定期更新数字。我希望能够继续在不同的 linux 桌面上工作,但我发现如果我不在它使用的桌面上,matlab 会慢得爬行。我认为这与它对渲染到不可见的图形或其他东西不满意有关。有没有其他人看到过这个,或者更好地找到了解决方案?我知道我可以在没有数字的情况下运行,但我真的很想偶尔检查一下并查看数字以了解状态。

4

1 回答 1

0

我在带有显示器的网络服务器上运行 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 脚本,在每次更新图像时自动打开图像。)

于 2013-05-09T01:18:14.750 回答