Как установить размер фигуры в Matlab, не устанавливая ее положение?

В Python я могу передать размер директиве figure:

figure(figsize=(8,6))

В Matlab я не вижу такой возможности. У меня есть сложные советы, такие как

set(gcf, 'PaperPositionMode', 'manual');
set(gcf, 'PaperUnits', 'inches');
set(gcf, 'PaperPosition', [2 1 4 2]);

который включает в себя как размер настройки, так и положение.

Как установить только размер самым простым способом в Matlab?


person Dims    schedule 28.12.2017    source источник
comment
Несколько вопросов: 1) Какую версию MATLAB вы используете? 2) Чего именно вы надеетесь добиться, не меняя цифру Position? Вы пытаетесь экспортировать фигуру в более высоком разрешении? Пожалуйста, также объясните свою мотивацию.   -  person Dev-iL    schedule 28.12.2017
comment
Размещенный вами код изменяет размер и положение рисунка, но он действует только при печати или сохранении рисунка. Вы хотите или (и) хотите изменить размер окна так, как оно показано на экране?   -  person il_raffa    schedule 28.12.2017


Ответы (2)


Это должно работать:

set(gcf, 'Position', get(gcf,'Position').*[1 1 0 0] + [0 0 newWidth newHeight]);

Если ваш MATLAB R2014b или новее, вы также можете сделать:

hF = gcf;
hF.Position(3:4) = [newWidth newHeight];
person Dev-iL    schedule 28.12.2017

Насколько я знаю, нет возможности установить только размер, но вы можете получить положение/размер по умолчанию и использовать его в качестве обходного пути. Для этого просто напишите что-то вроде:

figPos = get(0,'defaultfigureposition');
width = 400;
height = 400;
figure('Position', [figPos(1), figPos(2), width, height]);

Это установит размер только при инициализации фигуры. Для уже инициализированных фигур используйте элемент дескриптора gcf фигуры:

set(gcf, 'Position', [values])

Если вы хотите установить этот размер по умолчанию, используйте set для свойства 'defaultfigureposition':

set(0, 'defaultfigureposition', [values]);
person Lidia Parrilla    schedule 28.12.2017