For loop Stoping after saving

In my program I created a for loop that goes through different parameter values for processing an image and at the end it saves each image with the different parameter value. The only problem is that it only goes through the first iteration. 1. program load all paramater values 2. for loop
for JitterAmp = 0:0.33:0.66
for TarScale = 0.001:0.100:1
% does all calculations
% saves all images
if Nbits > 16
fname = [nameString, '.raw']
end
cd(oldfolder); % this contains the pathname where file is to be saved
% it then simData with bit numbers
if Nbits > 16
writeSimData (oldfolder, fName, uint32(F5));
end
end
end
The program works for only the first iteration where JitterAmp is 0 and tarScale is 0.001. After it saves it , the program stops. What can I do?

 采纳的回答

Image Analyst
Image Analyst 2018-7-10

0 个投票

You'll just have to step through it line by line to find out where it gets kicked out of the for loop, because that code looks fine to me.
Regarding your for loop values, you'd also better have a look at the FAQ: https://matlab.wikia.com/wiki/FAQ#Why_is_0.3_-_0.2_-_0.1_.28or_similar.29_not_equal_to_zero.3F If you don't fully understand that (which it appears that you don't) then you'll run into trouble.

4 个评论

well it doesn't really kick me out. I mean it just saves the first image created and that's it. and thanks for the info! I was trying to figure out the best way for this to work. I have been working on it manually where I have to change the values for each parameter each time, but I'm trying to automate it a little bit.
so you are saying that instead of doing a loop where it increments the small numbers, just create an array with the exact numbers so it doesn't create that discrepancy of the number rounding off instead?
When I do it, it does JitterAmp 3 times, and TarScale 10 times for each JitterAmp, for a total of 30 times in the inner loop. You say it exits after only one time, not 30, so you ARE getting kicked out of the loop for some reason. Do you know how to set breakpoints and step through the debugger?
Yes! I see what you are saying. Let me see if I can figure it out. I am changing the parameters to Arrays instead as well. I read the FAQ you sent, and it makes sense that by incrementing the values by 0.33 it will not be exact.

请先登录,再进行评论。

更多回答(0 个)

类别

帮助中心File 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