条件:如果循环没有暂停,则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.
drawnow
之后的colorbar
命令无效。 系统:Linux Ubuntu 16.04 64位
Matlab:2016a
硬件:Macbook Air 2013-mid
答案 0 :(得分:0)
这是Matlab的内部问题。如果内存不足,计算和图形在某些组件中会变得不稳定,我无法分析和理解,因为封闭系统。 只需使用具有困难矩阵计算的实数据来重现错误。 我将线程How to Allocate More Space to Swap and Increase its Size Greater than Ram?中描述的内存扩展为8 GB到36 GB,现在没有错误。