Filter löschen
Filter löschen

figure ウィンドウをセカンダリのモニタに表示する方法

17 Ansichten (letzte 30 Tage)
Musashi Ito
Musashi Ito am 8 Mär. 2021
Kommentiert: Musashi Ito am 10 Mär. 2021
パソコンに2枚のモニタを接続して作業してます。figure 関数でウィンドウを表示するとプライマリのモニタにウィンドウが表示されます。セカンダリのモニタに figure のウィンドウを表示する方法をご存じの方いましたら、ご教示下さい。

Akzeptierte Antwort

Shunichi Kusano
Shunichi Kusano am 8 Mär. 2021
figureの位置とサイズはPositionプロパティで制御できるので、一度figureでウィンドウを出した後、好きな場所に持ってくるのが良いと思います。
私の場合、プライマリウィンドウの上にセカンダリウィンドウを設定しているので、下記figPosのようにy座標にプライマリウィンドウのy方向の画素数を上乗せして設定すると、セカンダリウィンドウの真ん中にウィンドウが出るようになります。
いちいちこれを全部入力するのは煩雑ですので、適当な名前で関数化してパスを通しておくと使いやすくなると思います。
% デフォルトとするfigureのサイズ
w = 500;
h = 500;
% ディスプレイサイズの取得
r = groot;
dispSize1 = r.MonitorPositions(1,3:4); % プライマリ
dispSize2 = r.MonitorPositions(2,3:4); % セカンダリ
% figureのポジションの定義
% [左下座標X 左下座標Y 幅 高さ]の順
% 原点はプライマリウィンドウの左下隅
figPos = [dispSize2(1)/2 - w/2, ...
dispSize1(2) + dispSize2(2)/2 - h/2, ...
w, h];
% ウィンドウを生成してPositionプロパティを変える
fig = figure;
fig.Position = figPos;
  1 Kommentar
Musashi Ito
Musashi Ito am 10 Mär. 2021
ありがとうございます。Position のプロパティで制御してみたいと思います。セカンダリのモニタに表示したいだけなのですが、ディスプレイサイズから計算しないといけないんですね・・・

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (0)

Kategorien

Mehr zu Matrix Indexing finden Sie in Help Center und File Exchange

Tags

Produkte

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!