我想知道是否有任何已知的方法将MATLAB数字移动到特定的监视器。
我有以下代码片段可以帮助我将所有数据都放在前面(我是从Mathworks here获得的):
%% Bring all figures to front
all_figure_handles = findall(0, 'type', 'figure');
for iCount = length(all_figure_handles):-1:1
figure(all_figure_handles(iCount))
end
我想知道我是否可以要求MATLAB以类似的方式将所有数字移动到另一个屏幕(即使用all_figure_handles
中的句柄)。
或者,如果MATLAB不知道监视器分区,我怎么能将所有数字移动到总屏幕空间的右半部分? (在我的情况下,右半部分应该是右边的监视器。)
答案 0 :(得分:8)
来自Matlab图文档:
指定图大小和屏幕位置
要创建一个四分之一大小的图形窗口并位于左上角,请使用根对象的ScreenSize属性来确定大小。 ScreenSize是一个四元素向量:[left,bottom,width,height]:
scrsz = get(0,'ScreenSize'); figure('Position',[1 scrsz(4)/2 scrsz(3)/2 scrsz(4)/2])
要定位包含菜单栏,标题栏,工具栏和外边缘的完整图形窗口,请以相同方式使用OuterPosition属性。
像这样:
set (gcf(), 'outerposition', [25 500, 560, 470])
此外,在Root Properties的文档中:
MonitorPositions
[x y宽度高度; x y宽度高度]
主显示器和辅助显示器的宽度和高度,以像素为单位。包含连接到计算机的每台显示器的宽度和高度。主监视器的x和y值为0,0,监视器的宽度和高度以像素为单位。
辅助监视器位置指定为: x =主监视器宽度+ 1 y =主监视器高度
在多头系统上查询图形MonitorPositions的值会在单独的一行上返回每个监视器的位置。 v = get(0,'MonitorPositions') v = x y width height%主监视器 x y width height%辅助监视器
使用多个监视器时,ScreenSize属性的值不一致。如果需要特定且一致的值,请使用MonitorPositions属性。
答案 1 :(得分:0)
注意:您必须让左侧的主显示器才能使用此
v = get(0,' MonitorPositions')否则你会得到不好的坐标。
示例
右侧的主监视器=监视器2 +监视器1
在命令窗口输入
2001-10-18T08:47:00
第二行的坐标不好。你不必得到负坐标或零坐标
现在, 左侧的主监视器=监视器1 +监视器2
get(0,'MonitorPositions')
ans =
1 1 1920 1080
-1919 1 0 1080
更改Windows 8上的主监视器
右键单击桌面,屏幕分辨率,选择监视器,使此监视器成为主监视器。