对于多屏用户,MATLAB可以控制图窗输出在任意屏幕,只要这样做:
%查看所有屏幕的分辨率和位置信息
monitors = get(0, 'MonitorPositions');
对于我的电脑,我得到:
monitors =
-3359 -1479 1440 2560
1 1 1920 1080
-1919 1 1920 1080
其中每一行代表一个屏幕的x,y,width,height.
x是窗口左下角相对于主屏左下角的水平位置(单位:像素)
y是窗口左下角相对于主屏左下角的垂直位置(单位:像素)
width是屏幕的宽度
height是屏幕的高度。
因此这个图的意思是我有三块屏幕,其中第一块屏幕在主屏的左边-3360像素的位置。第二块屏幕是主屏本身,所以位置是(1,1)。第三块屏幕是在主屏左边-1920的位置。注意其实这三块屏幕在空间中是连续的坐标,所以我们只需要设置图窗在这个连续空间中的位置。

有点说多了,然后我们继续。
fig = figure(1)%指定该图窗编号为1
...(画图代码本身)
monitors = get(0, 'MonitorPositions');
verticalScreen = monitors(1, :);%获取第一个屏幕的位置和长宽
set(fig, 'Position', [verticalScreen(1), verticalScreen(2), verticalScreen(3), verticalScreen(4)]);%设定图窗铺满该屏幕。
下面是铺满我三个屏幕的画图样例代码,正好今天是5月20日,画个图吧。效果如图:

% 获取所有显示器位置信息
monitors = get(0, 'MonitorPositions');
% 要显示的大数字
big_numbers = {'5', '0', '2'};
% 设置字体大小
font_size = 500;
% 在每块屏幕上打开一个图窗并显示数字
for i = 1:3
fig = figure(200 + i);
set(fig, 'Units', 'pixels', 'Position', monitors(i, :), ...
'Color', 'w'); % 白底窗口
% 清空图窗并显示大号数字
clf;
axes('Position', [0 0 1 1]); % 去除边距填满整屏
text(0.5, 0.5, big_numbers{i}, ...
'FontSize', font_size, ...
'HorizontalAlignment', 'center', ...
'VerticalAlignment', 'middle');
axis off; % 去掉坐标轴
end
结束。
免责声明:本文系网络转载或改编,未找到原创作者,版权归原作者所有。如涉及版权,请联系删