2009-06-03 6 views
14

Moja rozdzielczość ekranu jest ustawiona na 1600x1200. W programie MATLAB, mogę ustawić „DefaultFigurePosition” własność za pomocą następującego polecenia:Dlaczego otrzymuję ostrzeżenie "Brak zasobów systemu Windows" po otwarciu wielu okien figur w MATLAB [7.0 (R14) i później] na komputerze z systemem Microsoft Windows?

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

I wtedy otworzyć wiele okien postać używając następującej pętli:

for i = 1:46 
    figure 
end 

na ostatnim rysunku, pojawia się następujący komunikat w oknie poleceń:

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

Odpowiedz

9

Jednym ze sposobów uniknięcia tego komunikatu jest zmniejszenie domyślnego rozmiaru figury, określonego przez trzeci i czwarty element "DefaultFigurePosition".

Możesz także spróbować zwiększyć przestrzeń sterty Java VM zgodnie z opisem w następującym Rozwiązaniu technicznym "Jak zwiększyć przestrzeń sterty dla maszyny wirtualnej Java w MATLAB 6.0 (R12) i nowszych wersjach?" w:

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

Ponadto, czasami zmieniając renderer OpenGL może działać. Można to zrobić w następujący sposób:

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

Niestety, system Windows ma ograniczoną liczbę zasobów graficznych.

Możesz sprawdzić liczbę zasobów za pomocą Menedżera zadań, w zakładce Procesy, klikając menu Widok/Wybierz kolumny i zaznaczyć opcję "Obiekty GDI".

Następnie można zobaczyć liczbę obiektów graficznych (GDI) używanych w każdym procesie.

Maksymalna ilość obiektów GDI na proces to około 9900 obiektów. Co więcej, proces nie będzie w stanie narysować ich poprawnie.

+0

Możesz to zmienić, w ramach limitów. IIRC, bezwzględna maksymalna liczba uchwytów GDI to 16384, a liczba uchwytów USER wynosi 18000. zobacz http://support.microsoft.com/kb/327699. Ten artykuł jest specyficzny dla XP, ale te same ograniczenia dotyczą Vista i AFAIK Win7. Zobacz http://support.microsoft.com/kb/126962, aby uzyskać informacje na temat zmiany wielkości sterty - może to być konieczne, jeśli przydzielasz duże porcje rzeczy na stercie. – DaveE

0

Według this thread, może to być przełącznik /3GB, które mogą być ustawione na 32-bitowych wersjach systemu Windows. Mam swój zestaw i otrzymuję błąd magazynu, gdy Menedżer zadań wyświetla tylko 206 obiektów GDI przeciwko Matlab.

Może to być spowodowane różnymi przyczynami w różnych sytuacjach. Istnieje wiele sposobów na wyczerpanie zasobów.

Powiązane problemy