Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/user-interface/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
matlab,设置默认图形大小,但不';你不在乎职位吗?_Matlab_User Interface_Matlab Figure - Fatal编程技术网

matlab,设置默认图形大小,但不';你不在乎职位吗?

matlab,设置默认图形大小,但不';你不在乎职位吗?,matlab,user-interface,matlab-figure,Matlab,User Interface,Matlab Figure,类似于: 但是,我只想设置宽度和高度,而不关心位置。理想的行为是,我可以随意拖动图形,但每次重新绘制时,大小都是固定的 我不喜欢上面链接中的方法,因为您必须为位置提供(x,y)坐标,这在代码开发或我使用不同的计算机时很烦人。但是也许有一种更聪明的方法来使用set()函数 编辑:酷@回答下面,这是我的更新功能。另一件事是保持“沉默”,这样人物就不会不断吸引焦点 function h = sfigure(h,s1,s2) % SFIGURE Create figure window (minus

类似于:

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

我不喜欢上面链接中的方法,因为您必须为位置提供(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);

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

酷,将此技巧包装到我的sfigure()函数中编辑了我的问题。@peterkarasev看起来不错。。。如果您可以将varargin列表传递到
,那么它的使用将与通常创建图的所有方法保持一致。您甚至可以检查
位置
参数,并允许它覆盖您的自定义实现,以防您(或其他用户)想要恢复功能。是的,这是一个很好的观点。但是,固定位置可能会打破人物的“沉默”性质;您希望能够在运行某些内容时在屏幕上的任何位置执行其他操作。而且,通常我有一两个数字对其他用户有意义,另外几个数字只对我有意义;不需要在每个人的屏幕上强加这些;-)