在MATLAB的终端仿真模式下打印透明图形

时间:2012-10-21 23:47:43

标签: matlab matlab-figure

有可能吗?下面的代码说明了我想要做的事情:

xdata = [0 1 2];
ydata = [0 1 0];
h = patch(xdata,ydata,'w');
set(h, 'FaceAlpha', 0.2);
print -dpng myfig

如果我使用选项-nodisplay启动MATLAB并运行上面的代码,MATLAB只会给我一个核心转储。我认为MATLAB应该比没有进一步解释的崩溃更好一些,但我知道这是因为opengl和zbuffer渲染器在终端仿真模式下都不可用。

我通过以.svg格式绘制透明图来解决这个问题,但对我来说这不是一个理想的解决方案。我的MATLAB脚本生成的HTML报告包含许多嵌入式图形,大多数浏览器在渲染包含多个(相对复杂的).svg图像的页面时表现非常差。那么,有没有人知道更好的解决方案?

1 个答案:

答案 0 :(得分:0)

此问题的间接解决方案是使用plot2svg()将透明图形打印到.svg文件,然后使用Inkscape.svg文件转换为{{ 1}},.pngInkscape支持的任何其他格式。 Inkscape提供了相当不错的command line support,因此您可以轻松编写MATLAB的整个过程脚本。 Inkscape适用于Windows,Linux和Mac OS X.