MATLAB, установив размер цифры по умолчанию, но не заботится о положении?
-
11-12-2019 - |
Вопрос
Подобно: Установка диаграмма диаграммы
Но я просто хочу установить ширину и высоту , не заботясь о положении.Желаемое поведение состоит в том, что я могу перетащить рисунку по желанию, но на каждом повторном рисовании размер будет исправлен.
Мне не нравится метод в вышеуказанной ссылке, потому что вы должны предоставить координату (x, y) для позиции, что раздражает, поскольку код разрабатывается или я использую разные компьютеры.Но, возможно, есть умнее способ использовать эту функцию SET ()?
Редактировать: cool @ Ответ ниже, вот моя обновленная функция.Другое дело - быть «молчать», поэтому фигура не растет фокус постоянно.
.function h = sfigure(h,s1,s2)
% SFIGURE Create figure window (minus annoying focus-theft).
%
% Usage is identical to figure.
%
% Daniel Eaton, 2005
%
% See also figure
%
% Modified by Peter Karasev, 2012, to optionally set scale
%
if nargin>=1
if ishandle(h)
set(0, 'CurrentFigure', h);
else
h = figure(h);
end
else
h = figure;
end
if( nargin > 1 )
scaleX = s1;
scaleY = s1;
if( nargin > 2 )
scaleY = s2;
end
pos = get(h,'Position');
pos(3:4) = [400 300].*[scaleX scaleY];
set(gcf,'Position',pos);
end
Решение
Combine it with the corresponding get
function:
figure
pos = get(gcf,'Position');
pos(3:4) = [w h];
set(gcf,'Position',pos);
This will keep the default position and only change the width and height.