在你之后运行以下代码。
imgwidth = max(1, ceil(max(x) - min(x)));
imgheight = max(1, ceil(max(y) - min(y)));
ax = gca;
ax.Visible = 'off';
ax.XTickMode = 'manual';
ax.YTickMode = 'manual';
ax.ZTickMode = 'manual';
ax.XLimMode = 'manual';
ax.YLimMode = 'manual';
ax.ZLimMode = 'manual';
ax.Position = ax.OuterPosition;
af = gcf;
figpos = getpixelposition(af);
resolution=get(0, 'ScreenPixelsPerInch');
set(af, 'paperunits','inches', ....
'papersize',[imgwidth imgheight]/resolution, ....
'paperposition',[0 0 [imgwidth imgheight]/resolution]);
print(af,'out.png','-dpng',['-r',num2str(resolution)],'-opengl')
做过的事情:
- 获取数据范围并转换为图像尺寸。
- 关闭轴和刻度。
- 最小化/删除实际内容周围的填充空间。
- 将数据中的 1 个单元映射到输出图像中的 1 个像素。
未完成的事情:
此屏幕截图显示了非统一纵横比输出:
参考
Mathworks - 以特定大小和分辨率保存图形
MATLAB Central - 以设定的分辨率保存图形
数学作品 -print
Mathworks - 用最少的空白保存图形