【发布时间】:2012-06-19 22:33:56
【问题描述】:
我正在使用 Matlab 的 Mapping Toolbox 创建和打印北美的圆锥投影图。当我在 IDE 中运行代码时,绘图被正确打印和保存,但是当使用 -nodisplay -nodesktop -nosplash 在命令行上运行相同的脚本时,我遇到了一个非常奇怪的问题。
在 print() 函数调用期间,Matlab 停止运行脚本,没有任何错误、警告或崩溃日志。 Matlab 实际上并没有崩溃……它只是停止执行我的代码。假设可以打印不带显示器的图形according to this。
其他人也遇到过类似的问题,并在MathWorks website 上询问过。
Here is some code to reproduce this problem.
到目前为止,还没有人提出解决方案。有没有人有什么建议?提前致谢!
编辑 1:
这里有一些独立的代码来重现问题。我在 R2011b 和 R2012a 上都进行了测试。
figure(1)
axesm eckert4; framem; gridm; axis off; tightmap
load geoid
contourfm(geoid, geoidrefvec, -120:20:100, 'LineStyle', 'none');
coast = load('coast');
geoshow(coast.lat, coast.long, 'Color', 'black')
contourcbar
print('-f1','-dpng','-r200','-painters', 'example');
【问题讨论】:
-
您能否发一个short, self contained example,而不是要求我们先下载您的源代码的压缩文件,然后我们才能尝试回答您的问题。此外,链接到代码通常不是一个好主意,因为如果该链接损坏(比如您停止使用保管箱),那么这个问题可能毫无用处。
-
我明白了。不幸的是,我制作的绘图是一个更大的软件包的一部分,但我会尝试提出一些独立的代码来重现它。
-
@GPSmaster:我假设您使用的是 Linux 机器。我在 WinXP 上的 MATLAB R2012a 中导出图形没有问题(尽管它警告你不要使用画家渲染器)
-
是的,我正在使用 linux。我在 REHL5 和 ubuntu 10.10 上试过这个。为了澄清起见,您使用 -nodisplay -nodesktop 和 -nosplash 选项从命令行运行代码?因为如果我在 IDE 中运行相同的代码,我也可以导出图形。
-
@GPSmaster:是的。我将您的代码保存为
myscript.m,然后运行:matlab -nodesktop -noFigureWindows -nosplash -r "myscript; quit"(noFigureWindows是 Windows 等效于 Unix-onlynodisplay选项)
标签: plot maps matlab matlab-figure