Существует множество вариантов сохранения фигуры в Matlab. Если вы не используете диалоговое окно «Сохранить как», у вас есть две функции на выбор: saveas и print .
'Position'
определяет местоположение и размер области рисования, заданной в виде вектора формы [высота ширины левого нижнего края]. Эта область исключает границы фигуры, строку заголовка и т. Д. В настоящее время вы в основном получаете размер и местоположение вашей первой фигуры, отображаемой на экране, и сохраняете данные в соответствии с этими размерами.
При сохранении ваших фигур таким образом, размеры будут соответствовать тому, что было определено внутри Matlab, или вы сами переопределите его, используя свойство 'Position'
. Но вы не всегда хотите / хотите, чтобы размер сохраненной фигуры и размер фигуры были одинаковыми на экране. И вам также нужно позаботиться о положении ваших фигур, что в вашем случае вы получили с помощью функции set
, я пропущу это в моем примере.
gcf=figure;
figure_width_to_save = 12.5; %cm
figure_height_to_save= 10; %cm
location_x=2; %cm
location_y=2; %cm
gcf.Units = 'centimeters';
gcf.Position = [location_x location_y figure_width_to_save figure_height_to_save];
saveas(gcf,[savefigures_path,savefigure_name,'_saveas.tiff'],'tiffn');
print(gcf, '-dtiffn', [savefigures_path,savefigure_name,'_print.tiff'], '-r300');
Но лучше иметь отдельный контроль над настройками, используемыми для сохранения фигуры. Для этого вы должны определить 'PaperPosition'
свойство. 'PaperPosition'
определяет размер и местоположение фигуры на странице при сохранении, заданный в виде четырехэлементного вектора формы [высота ширины левого нижнего края], но на самом деле со свойством 'PaperPosition'
вам не нужно думать о местоположении вашей фигуры столько, сколько вы бы использовали со свойством 'Position'
.
Теперь о самой экономии, вы не упомянули, какой подход вы используете.
Функция saveas использует разрешение 150 DPI и использует свойства рисунка 'PaperPosition'
и 'PaperPositionMode'
для определения размера изображения. Если вы хотите напечатать или сохранить фигуры того же размера, что и фигура на экране, убедитесь, что для свойства 'PaperPositionMode'
фигуры установлено значение 'auto'
, но я предпочитаю сам контролировать эти свойства.
Если вы сохраните свою фигуру в Matlab с помощью saveas , то в качестве примера вам нужно указать это:
gcf.PaperPositionMode = 'manual';
gcf.PaperUnits = 'centimeters';
gcf.PaperPosition = [0 0 figure_width_to_save figure_height_to_save];
saveas(gcf,[savefigures_path,savefigure_name,'.tiff'],'tiffn');
Функция print дополнительно позволяет вам контролировать сохраненное разрешение рисунка. Например, флаг -r300 устанавливает разрешение на выходе в 300 точек на дюйм. Чтобы указать разрешение экрана, используйте '-r0'.
print([savefigures_path,savefigure_name,'.tiff'],'-dtiffn','-r300')
Ознакомьтесь с примерами Matlab о сохранении фигур с определенным размером и разрешением