1

是否可以?下面的代码说明了我想要做什么:

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

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

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

4

1 回答 1

0

.svg此问题的间接解决方案是使用plot2svg()将透明图形打印到文件中,然后使用Inkscape.svg文件转换为.pngInkscape.pdf支持的任何其他格式。Inkscape 提供了非常好的命令行支持,因此您可以轻松地从 MATLAB 编写整个过程的脚本。Inkscape 适用于 Windows、Linux 和 Mac OS X。

于 2012-11-13T15:58:25.310 回答