使用-nodesktop选项时,Matlab绘图的分辨率非常低
当函数使用使用-nodesktop选项时,Matlab绘图的分辨率非常低,matlab,crontab,resolution,Matlab,Crontab,Resolution,当函数使用-nodesktop选项通过cronjob运行时,我对matlab绘图的分辨率有问题。该功能打印并保存(使用打印功能)多个图形。从matlab桌面运行时,它们会按照指定的分辨率进行打印和保存,不会出现任何问题。但是当通过带有-nodesktop选项的cronjob运行时,分辨率非常差(低) 这就是我目前正在做的事情: fh = figure; set(fh,'Position',[0 0 1360 470]); plot(somedata); print(fh,'-dpng',f
-nodesktop
选项通过cronjob运行时,我对matlab绘图的分辨率有问题。该功能打印并保存(使用打印功能)多个图形。从matlab桌面运行时,它们会按照指定的分辨率进行打印和保存,不会出现任何问题。但是当通过带有-nodesktop
选项的cronjob运行时,分辨率非常差(低)
这就是我目前正在做的事情:
fh = figure;
set(fh,'Position',[0 0 1360 470]);
plot(somedata);
print(fh,'-dpng',figpath,'-painters');
请注意,我还尝试指定打印分辨率:
print(fh,'-dpng',figpath,'-r300');
但这最终会导致文件损坏。我不知道为什么。我使用的是-painters
,因为我在某个地方读到,如果绘图有点复杂,它可以默认为opengl
,这会破坏打印,但这似乎不是问题(无论是否使用该选项,绘图都是相同的)
我也试过:
set(fh,'PaperPositionMode','auto')
这并不能解决问题
cronjob运行以下命令:
/usr/local/bin/matlab -nodesktop -r "startup; perform_plots; exit"
任何帮助都将不胜感激 我解决了这个问题 通过将matlab作为cronjob运行,未设置显示环境变量。因此,没有X显示供matlab使用。我不知道它是怎么做到的,但它确实做到了,而且分辨率很低 解决方法是在手之前设置适当的显示。e、 g:
#!/bin/bash
export DISPLAY=:1.0
/usr/local/bin/matlab -nodesktop -r "startup; perform_plots; exit"
如果您想在没有X服务器的机箱上运行它,可以使用Xvfb(X虚拟帧缓冲区)设置虚拟X服务器。这还有一个优点,即使用与您可能正在处理的显示器分开的显示器,以便作业可以在后台运行,而不会在您工作时随机出现绘图。您可以发布
get(fh)
的输出吗?