Pau*_*sen 1 matlab properties matlab-figure
在MATLAB会话期间,get(0,'screensize')
首先给出正确的分辨率.稍后,答案将成为现实[0 0 1 1]
.这种行为只会在我重新启动matlab时停止,然后再次返回正确的值.
当我运行程序的特定部分时,总会发生此错误.它似乎发生在这个特定的代码行之后:
set(0,'PointerLocation',[.4*GUI.scrsz(3),.5*GUI.scrsz(4)],'units','normalized');
Run Code Online (Sandbox Code Playgroud)
即使我设法隔离错误,我也无法弄清楚这种行为的原因.我在Windows 7 64bit上使用MATLAB R2010b.
请注意,我不是MATLAB的高级用户,所以如果我忽略了一些明显的东西,请原谅我.请提前感谢您的帮助.
原因是你设置'units'
为'normalized'
.并且你的屏幕自然地在角落里开始 - > [0 0 ...
并填满整个屏幕 - > ... 1 1]
(第一对定义了位置,第二对定义了高度和宽度)所以值是正确的,只是不再显示像素.
只需set(0,'units','pixels')
在完成任务之后将其重新设置为需要规范化单元.或者将屏幕大小存储在脚本开头的变量中,以便稍后使用.
随着get(0,...)
你获得默认属性并且set(0,...)
你改变它们,这就是为什么它在重新启动后再次正常,因为Matlab在每次启动时都将所有值设置为默认值,这在你的情况下'units','pixels'
.