我正在使用外接显示器。我的笔记本显示高度为800像素,但显示器超过1000像素。如果我在外部监视器上运行脚本
screenSize = get(0,'MonitorPositions');
figureSize = screenSize(4);
figure('Position',[0 0 figureSize figureSize])
新图形的大小不会超过笔记本显示屏的大小。有办法解决这个问题吗?
修改
我发现如果我在将外部显示器设置为输出设备的同时启动MATLAB,则脚本运行正常。在运行skript之前,有什么方法可以重置负责的设置吗?
答案 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
文件中添加以前的代码行来自动执行此操作。
希望有所帮助!