Matlab 保持纵横比数字

Matlab 保持纵横比数字,matlab,resize,position,figure,aspect-ratio,Matlab,Resize,Position,Figure,Aspect Ratio,在调整图形大小时,如何调整图像大小以保持宽度和高度之间的比率(F3/F4应保持不变) 您可以使用以下反馈功能实现您想要的: set(f,'SizeChangedFcn',@(src, callbackdata) onSizeChanged(src, F3, F4)); function onSizeChanged(src, F3, F4) pos = src.Position; scale = (pos(3)/F3 + pos(4)/F4)/2; % estimate the de

在调整图形大小时,如何调整图像大小以保持宽度和高度之间的比率(F3/F4应保持不变)


您可以使用以下反馈功能实现您想要的:

set(f,'SizeChangedFcn',@(src, callbackdata) onSizeChanged(src, F3, F4));

function onSizeChanged(src, F3, F4)
   pos = src.Position;
   scale = (pos(3)/F3 + pos(4)/F4)/2; % estimate the desired scale factor
   % scale = min(pos(3)/F3, pos(4)/F4); % alternative
   pos(3) = scale*F3;
   pos(4) = scale*F4;
   src.Position = pos;
end

另一种选择可能是使用,但这将改变绘图的纵横比,而不是窗口本身。

是否要保持图像纵横比与调整其大小的图形窗口相同?否,图形窗口本身。这是一个GUI图形。您的意思是在程序中调整图形大小时,还是在用户手动调整图形大小时?在用户手动调整图形大小时。谢谢!onSizeChanged是我正在寻找的,但是有时候图形进入振荡状态,因为uicontrol具有标准化单位。
set(f,'SizeChangedFcn',@(src, callbackdata) onSizeChanged(src, F3, F4));

function onSizeChanged(src, F3, F4)
   pos = src.Position;
   scale = (pos(3)/F3 + pos(4)/F4)/2; % estimate the desired scale factor
   % scale = min(pos(3)/F3, pos(4)/F4); % alternative
   pos(3) = scale*F3;
   pos(4) = scale*F4;
   src.Position = pos;
end