Переместить все цифры на конкретный монитор в MATLAB - PullRequest
10 голосов
/ 12 октября 2011

Мне было интересно, есть ли какой-нибудь известный способ перемещения фигур MATLAB на конкретный монитор.

У меня есть следующий фрагмент, который помогает мне вывести все фигуры на передний план (я получил его от Mathworks здесь ):

%% 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 не знает о разбиении монитора, как я могу переместить все цифры, скажем, в правую половину общего пространства экрана? (в моем случае правая половина должна быть монитором справа).

Ответы [ 2 ]

8 голосов
/ 12 октября 2011

Из документации по фигуре 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

[высота xy width; высота xy width]

Ширина и высота основного и вспомогательного мониторов в пикселях.Содержит ширину и высоту каждого монитора, подключенного к вашему компьютеру.Значения x и y для основного монитора равны 0, 0, а ширина и высота монитора указываются в пикселях.

Положение вторичного монитора определяется как: x = ширина основного монитора + 1 y = основнойвысота монитора

Запрос значения рисунка MonitorPositions в многопользовательской системе возвращает положение каждого монитора в отдельной строке.v = get (0, 'MonitorPositions') v = xy width height% Первичный монитор xy width height% Вторичный монитор

Значение свойства ScreenSize не согласовано при использовании нескольких мониторов.Если вам нужны конкретные и согласованные значения, используйте свойство MonitorPositions.

0 голосов
/ 08 февраля 2016

Примечание: у вас должен быть основной монитор слева, чтобы использовать это

v = get (0, 'MonitorPositions'), иначе вы получите неверные координаты.

Пример

основной монитор справа = монитор 2 + монитор 1

введите в командном окне

get(0,'MonitorPositions')

ans =

       1           1        1920        1080
   -1919           1           0        1080

неверные координаты во втором ряду.Вам не нужно получать отрицательные или нулевые координаты

Теперь основной монитор слева = Монитор 1 + Монитор 2

get(0,'MonitorPositions')

ans =

1921           1        3840        1080

1           1        1920        1080

Чтобы изменить основной мониторв Windows 8

Щелкните правой кнопкой мыши рабочий стол, разрешение экрана, выберите монитор, сделайте этот монитор основным монитором.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...