Code get stuck with nested loop and computer crashes after
显示 更早的评论
I am having an issue to run this block of code:
clear all
set(0,'DefaultFigureVisible','off');
a_data = cell(1,12560);
fft_a_data = cell(1,12560);
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%Code lines here before%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
count = 1;
for p2 = 1:a_trials
for p1 = 1:16
figHandle = figure;
topoplot(a_data(p1,:,p2),EEG.chanlocs,'style','map');
[X, Map] = frame2im(getframe(figHandle));
a_data{count} = X;
%FFT
Y = fft(a_data(p1,:,p2));
P2 = abs(Y/L);
P1 = P2(1:L/2+1);
P1(2:end-1) = 2*P1(2:end-1);
figHandle = figure;
topoplot(P1(fft_index),EEG.chanlocs,'style','map');
[X_fft, Map_fft] = frame2im(getframe(figHandle));
fft_a_data{count} = X_fft;
count = count + 1;
end
end
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%Code lines here after%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
set(0,'DefaultFigureVisible','on');
At the beginning the computer looks like running it but after it stops and whole system crashes, how should I handle this issue? When I consider a range for p2=1:5 and p1=1:5 it is running normally but to this range p2=1:785 I can't able to perform it. The topoplot belongs to EEGLab toolbox.
采纳的回答
更多回答(1 个)
Jan
2022-4-19
1 个投票
What is a_trials?
It looks like you want to run 12560 iteration. You open two figures in each iteration, so there is a total of 25120 open figures. Although they are invisible, they need a lot of memory. The crash means, that the memory is exhausted.
Either close the figures, if you do not need them anymore. Or reuse the existing figures, which would be much moire efficient. See e.g. clf.
类别
在 帮助中心 和 File Exchange 中查找有关 DSP Algorithm Acceleration 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!