how to save results in each loop by using for

조회 수: 2 (최근 30일)
Mahdi Torabi
Mahdi Torabi 2017년 5월 8일
답변: Arjun 2024년 12월 6일
I am running a program which I need to add white Gaussian noise on signal and filter it. I need to repeat the process for 100 times as I am applying random white Gaussian noise and take median for results, I am using 'for loop' from 1:100 and then need to save results individually for all loops. Could you please let me know that how results could be saved in output? for i = 1:100 - Adding noise - filtering part -Save results (?)
Thanks
  댓글 수: 1
Adam
Adam 2017년 5월 8일
results = zeros( 100, signalLen ); % Or the reverse, depending what works best for you)
for n = 1:100
results(n,:) = addNoiseAndFilter( mySignal );
end
Storing all results in a 2d matrix is the best approach. It makes the subsequent median trivial. If you want to save the end result to file you can, but it doesn't seem necessary.

댓글을 달려면 로그인하십시오.

답변 (1개)

Arjun
Arjun 2024년 12월 6일
I see that you want to save the results generated in different iterations of the "for" loop.
There can be multiple ways in which you can capture the results in between iterations using MATLAB. The choice of the method undertaken can depend on the data being saved. Some of the approaches to save the results are discussed below with demonstration.
  • Using Arrays: You can pre-allocate an array to store the results from each iteration. This is efficient and straightforward.
numIterations = 5;
results = zeros(1, numIterations); % Pre-allocate array for results
for i = 1:numIterations
% Simple operation: square the loop index
results(i) = i^2;
end
disp('Results using Arrays:');
disp(results);
  • Using Cell Arrays: If the results are not scalar and vary in size, you can use a cell array to store them.
numIterations = 5;
results = cell(1, numIterations); % Pre-allocate cell array for results
for i = 1:numIterations
% Simple operation: create an array with squared values
results{i} = (1:i).^2;
end
disp('Results using Cell Arrays:');
disp(results);
  • Using Files: If you want to save the results to a file for each iteration, you can use save to write to a .mat file.
numIterations = 5;
for i = 1:numIterations
% Simple operation: square the loop index
result = i^2;
% Save the result to a file
filename = sprintf('result_%d.mat', i);
save(filename, 'result');
end
disp('Results saved to files: result_1.mat to result_5.mat');
I hope this helps!

카테고리

Help CenterFile Exchange에서 Loops and Conditional Statements에 대해 자세히 알아보기

태그

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by