matlab,设置默认图形大小,但不关心位置?

标签 matlab user-interface matlab-figure

类似于:Setting graph figure size

但是,我只想设置宽度和高度,而不关心位置。理想的行为是我可以随意拖动图形,但每次重新绘制时大小都会固定。

我不喜欢上面链接中的方法,因为您必须提供位置的 (x,y) 坐标,随着代码的开发或我使用不同的计算机,这很烦人。但也许有一种更聪明的方法来使用 set() 函数?

编辑:下面很酷的@答案,这是我更新的功能。另一件事是保持“沉默”,这样人物就不会不断地吸引焦点。

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

最佳答案

将其与相应的get函数组合:

figure
pos = get(gcf,'Position');
pos(3:4) = [w h];
set(gcf,'Position',pos);

这将保留默认位置,仅更改宽度和高度。

关于matlab,设置默认图形大小,但不关心位置?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9650056/

相关文章:

MATLAB 删除一个轴上的刻度,同时保留标签

c# - 适用于 iOS 和 .Net 的类似 UI

MATLAB:设置要并行应用的线条的颜色和样式顺序

MATLAB 特征函数

python - 将 Matlab 转换为 Python - 加速循环

multithreading - 繁忙的游标-为什么?

java - 我无法让我的程序等到 GUI 完成收集请求的信息(Java)

matlab - 更改 MATLAB Polarplot 中的网格线颜色/对比度

MATLAB Colorbar - 相同的颜色,缩放值

matlab - Matlab中连续函数的采样