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

19 vues (au cours des 30 derniers jours)
Musashi Ito
Musashi Ito le 8 Mar 2021
Commenté : Musashi Ito le 10 Mar 2021
パソコンに2枚のモニタを接続して作業してます。figure 関数でウィンドウを表示するとプライマリのモニタにウィンドウが表示されます。セカンダリのモニタに figure のウィンドウを表示する方法をご存じの方いましたら、ご教示下さい。

Réponse acceptée

Shunichi Kusano
Shunichi Kusano le 8 Mar 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 commentaire
Musashi Ito
Musashi Ito le 10 Mar 2021
ありがとうございます。Position のプロパティで制御してみたいと思います。セカンダリのモニタに表示したいだけなのですが、ディスプレイサイズから計算しないといけないんですね・・・

Connectez-vous pour commenter.

Plus de réponses (0)

Catégories

En savoir plus sur Matrix Indexing dans Help Center et File Exchange

Tags

Produits

Community Treasure Hunt

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

Start Hunting!