为什么低内存使得Colorbar在Matlab数据中无响应?

时间:2016-07-21 16:48:54

标签: matlab memory

条件:如果循环没有暂停,则colorbar不是大约50%的图片;如果我把断点逐步运行,所有的颜色都会出现;我认为这是一些稳定性/记忆问题

伪代码

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

错误消息,之后颜色条消失,表示存在内存问题

Warning: print2array generating a 46.1M pixel image.
This could be slow and might also cause memory
problems.
  • Suever。 drawnow之后的colorbar命令无效。

系统:Linux Ubuntu 16.04 64位
Matlab:2016a
硬件:Macbook Air 2013-mid

1 个答案:

答案 0 :(得分:0)

这是Matlab的内部问题。如果内存不足,计算和图形在某些组件中会变得不稳定,我无法分析和理解,因为封闭系统。 只需使用具有困难矩阵计算的实数据来重现错误。 我将线程How to Allocate More Space to Swap and Increase its Size Greater than Ram?中描述的内存扩展为8 GB到36 GB,现在没有错误。