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.
2 件のコメント
Victor Gimenez
2022 年 4 月 19 日
Victor Gimenez
2022 年 4 月 20 日
編集済み: Victor Gimenez
2022 年 4 月 20 日
カテゴリ
ヘルプ センター および File Exchange で DSP Algorithm Acceleration についてさらに検索
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!