マルチモニター Linux システム (Red Hat Enterprise Linux 6.4) で MATLAB R2011a を使用しています。これに対する答えは、使用しているオペレーティング システムまたはグラフィック サブシステムによって異なる場合があります。
マルチモニター システムで次のコードを実行します。
mons = get(0,'MonitorPositions') ;
first_monitor_width = mons(1,3) ; % width of first monitor in pixels
fig = figure ; % create a new figure window
x_pos = 0 ;
y_pos = 100 ;
x_dim = first_monitor_width + 300 ; % Set fig to be 300 pxwider than left monitor
y_dim = 500 ;
set(fig,'OuterPosition',[x_pos y_pos x_dim y_dim]) ; % Or use 'Position'; same.
図の左端を左モニターの左側に配置し、幅を左モニターの幅に 300 ピクセルを加えたものに等しくなるようにしました。したがって、図は両方のモニターにまたがる必要があります。
しかし、代わりに、MATLAB は左側のモニターの幅 (私のコンピューターでは 1920 ピクセル) と同じ幅の Figure を作成します。
さて、ひねり:
手動で (マウスを使って) Figure の右下隅をドラッグし、両方のモニターにまたがるようにします (つまり、Figure の幅が 1 つのモニターの幅より大きくなるようにします)。次のコード行を再度実行します。
set(fig,'OuterPosition',[x_pos y_pos x_dim y_dim]) ;
今それは動作します!言い換えると、Figure にモニター間の「障壁を破る」ように強制すると、MATLAB は連続する表示スペース全体を 1 つのキャンバスとして扱います。
マウスを使用してウィンドウのサイズを変更し、もう一度完全に 1 つのモニター内に収まるようにしてからset(fig,'OuterPosition', ...)
呼び出しを再度実行すると、元の動作に戻り、その単一のウィンドウ内でのみ Figure のサイズを変更できることに注意してください。
私の質問は、完全にスクリプトでフィギュアを複数のモニターにまたがらせるにはどうすればよいですか? 同様に、呼び出しを使用して設定できるようなSpansMonitors = true
、または設定できる図のプロパティはありますか?false
set()