2016-07-21 5 views
-4

Bedingung: colorbar ist nicht etwa 50% der Bilder wenn Schleife ohne Pausen laufen; Wenn ich Breakpoints setze und schrittweise abspiele, erscheinen alle Farbbalken; Ich denke, das ist eine gewisse Stabilität/SpeicherproblemWarum geringer Speicher Farbbalken in Matlab-Figuren nicht reagieren lassen?

Pseudocode

i=1; 
while (i < 3); 

    figure('Visible', 'off'); 
    hax=axes(); 
    image('Parent',hax); 

    % Do heavy computation here; see the warning below for it. 
    a=rand(1,20000); 
    b=rand(1,20000); 
    C=rand(20000,20000);  
    imagesc(a,b,C); 
    colorbar(hax)   

    %% Unsuccessful attempts 
    %drawnow % does not help 
    %pause(1) % does not help 

    homedir=char(java.lang.System.getProperty('user.home')); % all systems 
    filename=fullfile(home, sprintf('/Desktop/%d', i)); 
    export_fig(filename, '-png', '-q101', '-a1', '-m1', ... 
     '-CMYK', '-nocrop', '-dpng', hax); 

    i=i+1; 

end 

Fehlermeldung nach dem Farbbalken verschwunden sind,

Warning: print2array generating a 46.1M pixel image. 
This could be slow and might also cause memory 
problems. 
  • Suever ein Speicherproblem hinweist. Befehl nach colorbar hilft nicht.

System: Linux Ubuntu 16.04 64 bit
Matlab: 2016a
Hardware: Macbook Air 2013-Mitte

+0

Setzen Sie eine 'drawnnow', nachdem Sie' colorbar' aufgerufen haben. Das Problem ist, dass es für den Renderer ohne Pausen keine Zeit gibt, die Farbleiste tatsächlich auf den Bildschirm zu ziehen. – Suever

+0

Geben Sie uns eine [mcve], die das Problem tatsächlich zeigt. Der geschriebene Code ist nicht ausführbar, es sei denn, Sie wollen einfach nur das Standardbild anzeigen. – Suever

+0

Es scheint, dass Sie vergessen haben, die Frage mit dem tatsächlichen Code zu bearbeiten. Wir wollen keinen Pseudocode, weil das das Problem nicht reproduziert. – Suever

Antwort

0

Dies ist internes Problem der Matlab. Wenn Sie im Speicher knapp werden, werden die Berechnungen und Grafiken in einigen Komponenten instabil, die ich nicht als geschlossenes System profilieren und verstehen kann. Verwenden Sie nur echte Daten mit schwierigen Matrixberechnungen, um den Fehler zu reproduzieren. Ich erweiterte Speicher mit Swap wie im Thread beschrieben How to Allocate More Space to Swap and Increase its Size Greater than Ram? von 8 GB bis 36 GB, und jetzt keine Fehler.

Verwandte Themen