2016-07-21 13 views
-4

条件:ループが一時停止することなく実行される場合、カラーバーは画像の約50%ではありません。ブレークポイントを設定して段階的に実行すると、すべてのカラーバーが発生します。私は、メモリの問題Matlab Figureでメモリが不足するとカラーバーが反応しないのはなぜですか?

Warning: print2array generating a 46.1M pixel image. 
This could be slow and might also cause memory 
problems. 
  • Sueverを示し、これはカラーバーがなくなっているの後にいくつかの安定性/メモリ問題

    擬似コード

    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 
    

    エラーメッセージだと思います。コマンドdrawnowの後にcolorbarは役に立ちません。

システム:LinuxのUbuntu 16.04 64ビット
Matlabの:2016a
ハードウェア:Macbook Airは2013 - ミッド

+0

'colorbar'を呼び出した後に' drawnow'を入れます。問題は、一時停止することなくレンダラーがカラーバーを実際に画面に描画する時間がないことです。 – Suever

+0

問題を実際に示す[mcve]を教えてください。あなたが文字通りデフォルトの 'image'を表示しない限り、書かれたコードは実行不能です。 – Suever

+0

質問を実際のコードで編集するのを忘れたようです。疑似コードは問題を再現しないので、擬似コードは必要ありません。 – Suever

答えて

0

これは、MATLABの内部の問題です。メモリが不足していると計算やグラフィックスが不安定になることがあります。 難しい行列計算で実際のデータを使用して、エラーを再現してください。 スレッドHow to Allocate More Space to Swap and Increase its Size Greater than Ram?に記載されているように、スワップを使用してメモリを8 GBから36 GBに拡張しました。エラーは発生していません。

関連する問題