Как объяснил @ LewisNorton , вам необходимо установить Paper***
свойства фигуры. Ниже приведен пример создания файла 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
Без принтера я использую виртуальную линейку экрана для проверки измерений; Просто отобразите файл PDF с вашим предпочтительным средством просмотра и установите уровень масштабирования на 100% (я использую Sumatra PDF ). Если вы хотите попробовать это сами, просто имейте в виду, что некоторые программы просмотра ( Adobe Reader ) могут использовать пользовательский DPI, не соответствующий разрешению системы по умолчанию (у меня 96 пикселей / дюйм).
Здесь вы можете видеть нижний и левый поля, равные 10mm
. То же самое относится и к двум другим полям:
Обратите внимание, что в приведенном выше примере ось покрыла всю фигуру (на рисунке нет серой области). По умолчанию MATLAB оставляет некоторое пустое пространство для меток тиков, меток осей, заголовков и т. Д. Это, конечно, отличается от полей, упомянутых выше, которые, я полагаю, вы уже знаете: