As @刘易斯诺顿 https://stackoverflow.com/a/7562186/97160解释说,你需要设置Paper***
特性 https://www.mathworks.com/help/matlab/ref/figure-properties.html该图的。下面是生成带有尺寸的 PDF 文件的示例420 x 297 mm
(A3 尺寸),绘图和文件边框之间的边距是10 mm
每个(上、下、左、右)。
%# centimeters units
X = 42.0; %# A3 paper size
Y = 29.7; %# A3 paper size
xMargin = 1; %# left/right margins from page borders
yMargin = 1; %# bottom/top margins from page borders
xSize = X - 2*xMargin; %# figure size on paper (widht & hieght)
ySize = Y - 2*yMargin; %# figure size on paper (widht & hieght)
%# create figure/axis
hFig = figure('Menubar','none');
plot([0 1 nan 0 1], [0 1 nan 1 0]), axis tight
set(gca, 'XTickLabel',[], 'YTickLabel',[], ...
'Units','normalized', 'Position',[0 0 1 1])
%# figure size displayed on screen (50% scaled, but same aspect ratio)
set(hFig, 'Units','centimeters', 'Position',[0 0 xSize ySize]/2)
movegui(hFig, 'center')
%# figure size printed on paper
set(hFig, 'PaperUnits','centimeters')
set(hFig, 'PaperSize',[X Y])
set(hFig, 'PaperPosition',[xMargin yMargin xSize ySize])
set(hFig, 'PaperOrientation','portrait')
%# export to PDF and open file
print -dpdf -r0 out.pdf
winopen out.pdf
手头没有打印机,我正在使用虚拟打印机屏幕尺 http://www.spadixbd.com/freetools/jruler.htm检查测量结果;只需使用您喜欢的查看器显示 PDF 文件,并将缩放级别设置为 100%(我正在使用苏门答腊 PDF http://en.wikipedia.org/wiki/Sumatra_PDF)。如果您想自己尝试一下,请注意有些观众(Adobe阅读器)可能使用与系统默认分辨率不匹配的自定义 DPI(我的分辨率为 96 像素/英寸)。
在这里您可以看到底部和左边距等于10mm
。其他两个边距也是如此:
请注意,在上面的示例中,我使轴覆盖了整个图形(图中没有灰色区域)。默认情况下,MATLAB 会为刻度标签、轴标签、标题等留出一些空白空间。这当然与上面提到的边距不同,我假设您已经知道了:)