修改autoArrangeFigures(从Matlab文件交换)以将不同的绘图发送到不同的监视器
使用 可以选择所有图形的放置位置。然而,我想控制哪些数字进入哪个监视器 MWE尝试:修改autoArrangeFigures(从Matlab文件交换)以将不同的绘图发送到不同的监视器,matlab,position,monitor,figure,Matlab,Position,Monitor,Figure,使用 可以选择所有图形的放置位置。然而,我想控制哪些数字进入哪个监视器 MWE尝试: autoArrangeFigures(0,0,2); % (0,0,x) where x is monitor ID 这只会将所有20个数字重定向到新的监视器位置。它不会保留监视器2中第一次调用autoArrangeFigures(0,0,2)时的10位数位置,而是通过autoArrangeFigures(0,0,1)将所有10+10位数重定向到监视器1 如何解决这个问题 autoArrangeFigures
autoArrangeFigures(0,0,2); % (0,0,x) where x is monitor ID
这只会将所有20个数字重定向到新的监视器位置。它不会保留监视器2中第一次调用autoArrangeFigures(0,0,2)时的10位数位置,而是通过autoArrangeFigures(0,0,1)将所有10+10位数重定向到监视器1
如何解决这个问题
autoArrangeFigures可在以下位置找到:
您可以做的一件事是修改
autoArrangeFigures
函数以获取附加(可选)参数figHandles
将第一行修改为:
close all; clear all; clc
% make 10 figures
for i=1:10
figure()
end
autoArrangeFigures(0,0,2); % (0,0,x) where x is monitor ID
pause(2)
% make 10 figures
for i=1:10
figure()
end
autoArrangeFigures(0,0,1); % (0,0,x) where x is monitor ID
要使此参数可选,可以更改第39行
function autoArrangeFigures(NH, NW, monitor_id, figHandle)
进入
那么你的MWE看起来像:
if ~exist('figHandle', 'var') || isempty(figHandle)
figHandle = sortFigureHandles(findobj('Type','figure'));
else
figHandle = figHandle(:); % make row vector
end
就我个人而言,我是Matlab FEX的粉丝,它允许你从盒子里拿出想要的东西
例如:
clear fig
% make 10 figures
for i=1:10
fig(i) = figure();
end
autoArrangeFigures(0,0,2, fig); % (0,0,x) where x is monitor ID
% make 10 figures
for i=1:10
fig(10+i) = figure();
end
autoArrangeFigures(0,0,1,fig(11:20)); % (0,0,x) where x is monitor ID
我按照你的建议尝试过,包括更改函数autoArrangeFigures(NH、NW、monitor_id、figHandle),但它仍然生成与原始MWE相同的结果;distFig是否支持3个监视器?@Ole我知道了,我在更改为
autoArrangeFigures
时出错,请参阅更新distFig
支持多个监视器,请阅读帮助以了解如何选择监视器。
clear fig
% make 10 figures
for i=1:10
fig(i) = figure();
end
autoArrangeFigures(0,0,2, fig); % (0,0,x) where x is monitor ID
% make 10 figures
for i=1:10
fig(10+i) = figure();
end
autoArrangeFigures(0,0,1,fig(11:20)); % (0,0,x) where x is monitor ID
for i = 1:20
fig(i) = figure();
end
distFig('screen', 'Secondary', 'only', 1:10) % place only fig 1:10 on the secondary screen
distFig('screen', 'Primary', 'only', 11:20) % place only fig 11:20 on the primary screen