图('位置',[x y宽度高度])不会超过高度800

时间:2015-07-07 12:06:27

标签: matlab matlab-figure

我正在使用外接显示器。我的笔记本显示高度为800像素,但显示器超过1000像素。如果我在外部监视器上运行脚本

screenSize = get(0,'MonitorPositions');
figureSize = screenSize(4);
figure('Position',[0 0 figureSize figureSize])

新图形的大小不会超过笔记本显示屏的大小。有办法解决这个问题吗?

修改

我发现如果我在将外部显示器设置为输出设备的同时启动MATLAB,则脚本运行正常。在运行skript之前,有什么方法可以重置负责的设置吗?

2 个答案:

答案 0 :(得分:2)

你可能想要:

figureSize = screenSize(monitorNumber,4);

由于screenSize(4)将为您提供矩阵中的第4个元素 - 与screenSize = screenSize(:)相同

答案 1 :(得分:2)

默认情况下,数字显示在主​​显示屏上。如果要强制Matlab在外部监视器上显示数字,则需要将DefaultFigurePosition设置为辅助监视器上实际存在的值。

因此,假设您创建了一个图形并将其拖动到外部监视器上。然后你可以获取当前位置并将其设置为默认值,如下所示:

FigPos = get(gcf,'Position');

set(0, 'DefaultFigurePosition', FigPos);

然后数字将随后出现在外部显示器上,尺寸合适。这并不完美,因为你需要创建一个数字,拖动它然后删除它,它只对你当前的会话有效。但是,您可以在startup.m文件中添加以前的代码行来自动执行此操作。

希望有所帮助!