# How do i store all the results from a set of 'for' loops, not just the results from the last iteration?

1 view (last 30 days)
Steven Harkness on 16 Apr 2020
Commented: Steven Harkness on 17 Apr 2020
When i run my script each time my for loop runs it overwrites the results of the previous itteration, is there a way to have it store all the results from each iteration? Here is the code in question.
clear
for Mean = 0.01:0.01:0.1
V=0.01;
noise = imnoise(img,'gaussian',Mean,V);
NoisePower = V*numel(img);
NPowerInt = fix(NoisePower);
[peaksnr, snr] = psnr(noise,img);
nsr = 1/snr;
for hsize = 3:1:26
for sigma = 0.5:0.5:5
PSF = fspecial('gaussian',hsize,sigma);
NoiseyBlurred = imfilter(noise,PSF,'replicate','same','conv');
BlindDeconv = deconvblind(NoiseyBlurred,PSF,15);
LucyFilter = deconvlucy(NoiseyBlurred,PSF,15);
WNRFilter = deconvwnr(NoiseyBlurred,PSF,nsr);
RegularFilter = deconvreg(NoiseyBlurred,PSF,snr);
PSNRBlurred = psnr(NoiseyBlurred,img);
PSNRBlind = psnr(BlindDeconv,img);
PSNRLucy = psnr(LucyFilter,img);
PSNRWNR = psnr(WNRFilter,img);
PSNRReg = psnr(RegularFilter,img);
Blur(hsize)= (40-PSNRBlurred)/40;
Blind(hsize)=PSNRBlind;
Lucy(hsize)=PSNRLucy;
WNR(hsize)=PSNRWNR;
Reg(hsize)=PSNRReg;
end
end
end
I can't store the data based off 'Mean' instead of hsize as it gives the error Subscript indices must either be real positive integers or logicals. I've tried having the hsize loop first but this just saves the results from the final sigma and Mean values at each hsize value. I have also tried creating a logical from the Mean to store the results but this didn't work either. I'm out of ideas, so any help would be greatly appreciated.

MaryD on 16 Apr 2020
Mean = 0.01:0.01:0.1
hsize = 3:1:26
sigma = 0.5:0.5:5
for m=1:length(Mean)
for h=1:length(hsize)
for s=1:length(sigma)
V=0.01;
noise(m) = imnoise(img,'gaussian',Mean(m),V);
%%%rest of the code
Blur(m,h,s)=...
end
end
end
Try storing your variable like this.
##### 1 CommentShowHide None
Steven Harkness on 17 Apr 2020
Hi, i was able to get it to work this way, thank you!