2013-05-03 5 views
1

멀티 모니터 Linux 시스템 (Red Hat Enterprise Linux 6.4)에서 MATLAB R2011a를 사용하고 있습니다. 이에 대한 대답은 사용중인 운영 체제 또는 그래픽 하위 시스템에 따라 다를 수 있습니다.그림을 MATLAB의 여러 모니터로 확장하려면 어떻게합니까?

다중 모니터 시스템에서 다음 코드를 실행

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 픽셀 임). 이제

, 트위스트 (마우스로)

수동으로 그림의 폭이 하나 개의 모니터의 폭보다 크도록 그것은 즉, (두 모니터에 걸쳐 수 있도록, 그림의 오른쪽 하단 모서리를 드래그). 이제 다음 코드 줄을 다시 실행하십시오.

set(fig,'OuterPosition',[x_pos y_pos x_dim y_dim]) ; 

이제 작동합니다! 다시 말해, 모니터간에 장벽을 깨뜨린 후에 MATLAB은 전체 연속 디스플레이 공간을 단일 캔버스로 처리합니다.

마우스를 사용하여 한 모니터에서 다시 전체적으로 보이도록 창 크기를 조정 한 다음 set(fig,'OuterPosition', ...) 호출을 다시 실행하면 그림의 크기를 조절할 수있는 원래의 동작으로 돌아갑니다 그 단일 창 내에서.

제 질문은 그림을 여러 대의 모니터에 걸쳐 전체 스크립팅에 적용하려면 어떻게해야합니까? 마찬가지로 SpansMonitors = true 또는 false과 같은 숫자의 속성이 있는데 set() 호출을 사용하여 설정할 수 있습니까? http://www.mathworks.com/help/matlab/creating_plots/positioning-figures.html에서

+0

음, 처음 코드 블록이 제대로 작동합니다. 나는 아직도 R2012a를 사용하고있다. 어떤 버전을 사용하고 있습니까? – gnovice

+0

그놈 2.28.2와 함께 Red Hat Enterprise Linux 6.4에서 R2011a를 사용하고 있습니다. 너는 어때? 아마도 R2012a에서 수정 된 것이거나 다른 운영 체제에서 동작이 다를 수 있습니다 (더 있음). –

+0

저는 Windows 7을 사용하고 있습니다. – gnovice

답변

0

:

그림의 위치 및 윈도우 관리자 컴퓨터의 윈도우 매니저 컨트롤 모니터에 가상 데스크톱 창 레이아웃. 은 그림 창을 배치하라는 요청을 받아 들일 수 없으므로 전체 그림 또는 위쪽 테두리가 화면 외부에 위치하게됩니다. 창 관리자는 창에 특정 최소값 또는 최대 값 너비 또는 높이가되도록 강제 할 수 있습니다. 이러한 작업을 수행하면 그림의 위치가 과 다를 수 있으며 플랫폼 및 창 관리자마다 결과가 다를 수 있습니다.

아마도 Metacity 창 관리자와 관련이 있습니다.

관련 문제