Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/matlab/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用-nodesktop选项时,Matlab绘图的分辨率非常低_Matlab_Crontab_Resolution - Fatal编程技术网

使用-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)
的输出吗?