2009-06-03 14 views
14

Độ phân giải màn hình của tôi được đặt thành 1600x1200. Trong MATLAB, tôi đặt "DefaultFigurePosition" tôi tài sản bằng cách sử dụng lệnh sau:Tại sao tôi nhận được cảnh báo "Out of Windows Resources" khi mở nhiều cửa sổ hình trong MATLAB [7.0 (R14) và hơn thế nữa] trên PC Windows của Microsoft?

set(0,'DefaultFigurePosition', [400 100 1050 1000]) 

Sau đó tôi mở nhiều hình cửa sổ bằng cách sử dụng vòng lặp sau:

for i = 1:46 
    figure 
end 

Trên con số cuối cùng, tôi nhận được thông báo sau trong cửa sổ lệnh:

Out of Windows Resources: Allocation of bitmap failed. 
Disabling backingstore for current figure. 

Trả lời

9

Một cách để tránh thông báo này là giảm kích thước hình mặc định, được chỉ định bởi phần tử thứ ba và thứ tư của "DefaultFigurePosition".

Ngoài ra, bạn có thể thử tăng không gian vùng Java VM như được mô tả trong Giải pháp kỹ thuật sau đây "Làm cách nào để tăng dung lượng cho máy ảo Java trong MATLAB 6.0 (R12) và các phiên bản sau?" tại địa chỉ:

http://www.mathworks.com/support/solutions/en/data/1-18I2C/

Ngoài ra, đôi khi, thay đổi các renderer để OpenGL có thể làm việc. Điều này có thể được thực hiện như sau:

set(h,'Renderer','opengl'); 
2

Thật không may, Windows có một số tài nguyên đồ họa giới hạn.

Bạn có thể kiểm tra số lượng tài nguyên bằng Trình quản lý tác vụ, tại tab Quy trình, nhấp vào menu Xem/Chọn cột và đánh dấu tùy chọn "Đối tượng GDI".

Sau đó, bạn có thể thấy số lượng đối tượng đồ họa (GDI) được sử dụng bởi mỗi quá trình.

Số lượng tối đa đối tượng GDI cho mỗi quy trình là khoảng 9900 đối tượng. Với nhiều hơn là quá trình sẽ không thể vẽ chúng một cách chính xác.

+0

Bạn có thể thay đổi điều này, trong giới hạn. IIRC, mức tối đa tuyệt đối của các tay cầm GDI là 16384 và USER xử lý là 18000. xem http://support.microsoft.com/kb/327699. Bài viết đó đặc trưng cho XP, nhưng các giới hạn tương tự áp dụng cho Vista & AFAIK Win7. Xem http://support.microsoft.com/kb/126962 để biết thông tin về việc thay đổi kích thước heap-bạn có thể cần điều này nếu bạn đang phân bổ các khối lớn o 'công cụ trên heap. – DaveE

0

Theo this thread, nó có thể là các /3GB chuyển đổi có thể được thiết lập trên các phiên bản 32-bit của Windows. Tôi đã thiết lập của tôi, và nhận được lỗi sao lưu khi Task Manager đang hiển thị chỉ 206 đối tượng GDI chống lại Matlab.

Hoặc có thể do các nguyên nhân khác nhau trong các trường hợp khác nhau. Có nhiều cách để hết tài nguyên.

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