2011-10-11 28 views
9

Tôi đã tự hỏi liệu có cách nào để di chuyển các số liệu MATLAB đến một màn hình cụ thể hay không.Di chuyển tất cả các số liệu đến một màn hình cụ thể trong MATLAB

Tôi có đoạn sau đó giúp tôi mang tất cả số liệu để phía trước (tôi đã nhận nó từ MathWorks here):

%% 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 

Và tôi đã tự hỏi nếu tôi có thể hỏi MATLAB để di chuyển tất cả các con số để màn hình khác theo cách tương tự (ví dụ: sử dụng tay cầm từ all_figure_handles).

Ngoài ra, nếu MATLAB không biết về phân vùng màn hình, làm thế nào tôi có thể di chuyển tất cả các số liệu đến, ví dụ, nửa bên phải của tổng không gian màn hình? (trong trường hợp của tôi, nửa bên phải là màn hình bên phải).

Trả lời

8

Từ con số tài liệu Matlab:

Xác định Kích thước hình và màn hình Location

Để tạo ra một cửa sổ con số đó là một phần tư kích thước của màn hình và được bố trí ở phía trên góc trái, sử dụng thuộc tính ScreenSize của đối tượng gốc để xác định kích thước. Screensize là một vector-yếu tố bốn: [trái, đáy, chiều rộng, chiều cao]:

scrsz = get(0,'ScreenSize'); figure('Position',[1 scrsz(4)/2 scrsz(3)/2 scrsz(4)/2])

Để xác định vị trí các cửa sổ hình đầy đủ bao gồm thanh menu, thanh tiêu đề, thanh công cụ, và các cạnh bên ngoài, sử dụng Thuộc tính OuterPosition theo cách tương tự.

Như thế này:

set (gcf(), 'outerposition', [25 500, 560, 470])

Và hơn nữa, trong tài liệu cho gốc Thuộc tính:

MonitorPositions

[xy chiều cao chiều rộng; xy chiều cao chiều rộng]

Chiều rộng và chiều cao của màn hình chính và phụ, tính bằng pixel. Chứa chiều rộng và chiều cao của mỗi màn hình được kết nối với máy tính của bạn. Các giá trị x và y cho màn hình chính là 0, 0 và chiều rộng và chiều cao của màn hình được xác định bằng pixel.

Vị trí màn hình thứ cấp được quy định như sau: x = màn hình chính rộng + 1 y = màn hình chính chiều cao

Truy vấn giá trị của MonitorPositions con số trên một hệ thống multiheaded trả về vị trí cho mỗi màn hình trên một riêng biệt hàng. v = get (0, 'MonitorPositions') v = x y width height% Primary màn x y width height% màn hình Secondary

Giá trị của tài sản screensize là không phù hợp khi sử dụng nhiều màn hình. Nếu bạn muốn các giá trị cụ thể và nhất quán, hãy sử dụng thuộc tính MonitorPositions.

+0

Tìm hiểu vị trí và kích thước của thanh tác vụ Windows. Nếu tôi nhớ chính xác, nó có thể ảnh hưởng đến nguồn gốc của hệ tọa độ. –

+0

Tôi chỉ thử 'get (0,' monitorpositions ') trên iMac của tôi, và nó loại trừ chiều cao thanh menur. Tôi cho rằng nó sẽ hoạt động tương tự trên Windows. – Max

+0

Cũng lưu ý rằng, ít nhất trên máy Mac, có màn hình "chính" ở bên trái (so với bên phải) của thiết lập hai màn hình cũng sẽ làm phức tạp mọi thứ và tài liệu trên có thể sẽ không hoạt động. – eykanal

0

Lưu ý: Bạn phải có màn hình chính của bạn ở bên trái để sử dụng này

v = get (0, 'MonitorPositions') nếu không bạn có được tọa độ xấu.

Ví dụ

màn hình chính ở bên phải = Màn hình 2 + Màn hình 1

loại trên cửa sổ lệnh

get(0,'MonitorPositions') 

ans = 

     1   1  1920  1080 
    -1919   1   0  1080 

tọa độ xấu vào hàng thứ hai. Bạn không cần phải được tiêu cực hoặc không phối

Bây giờ, màn hình chính bên trái = Màn hình 1 + Màn hình 2

get(0,'MonitorPositions') 

ans = 

1921   1  3840  1080 

1   1  1920  1080 

Để thay đổi màn hình chính trên windows 8

Máy tính để bàn nhấp chuột phải, độ phân giải màn hình, màn hình chọn, làm cho màn hình này trở thành màn hình chính.

Các vấn đề liên quan