Discover MakerZone

MATLAB and Simulink resources for Arduino, LEGO, and Raspberry Pi

Learn more

Discover what MATLAB® can do for your career.

Opportunities for recent engineering grads.

Apply Today

Why doesn't my loop code loop?

Asked by lisa on 9 May 2013

Here is the code I'm trying to use to generate multiple .jpg images by looping.

for a=11:12:143
  data1=data1(:,date1(a:a+11,:));
  data2=data2(:,date2(a:a+11,:));
    R = corr2(data1,data2);
    R_squared = R^2;
    figure
    scatter(data1,data2)
    ylabel('CF (unitless)')
    xlabel('AOD')
    title('Cloud Fraction Vs Aerosol Optical Depth (Ocean only, -10 <= lat <= 7, 1 deg. Monthly Resolution)')
    text(4.5,1, ['R^2 = ' num2str(R_squared)])
    axis([0 5 0 1])
    grid on
    year = a+1990;
    print('-djpeg','-r300',sprintf('CF vs. AOD-%d.jpg',year))
end

But instead of 11 images like I'm supposed to get (if you divide distance/step size = (154-11)/11) I only get one, the loop isn't looping. Can anyone help me out here, tell me why??

Thanks!

5 Comments

lisa on 9 May 2013

Here is the error message I get:

Index exceeds matrix dimensions.
Error in Regress_AODloop (line 16)
    data1=data1(:,date1(a:a+11,:));
lisa on 9 May 2013

'a' is in the loop, 2nd and 3rd lines:

   data1=data1(:,date1(a:a+11,:));
   data2=data2(:,date2(a:a+11,:));

Output file name (hopefully) = 'CF vs. AOD-%d.jpg',year

Thanks so much guys!!!

Jordan Monthei on 9 May 2013

are you sure that you are holding your plots each time they are outputting and its not just replacing the last plot with a different image every time it goes through the loop?

lisa

Tags

Products

No products are associated with this question.

1 Answer

Answer by Image Analyst on 9 May 2013

2 Comments

lisa on 9 May 2013

so basically I use dbstop if error and conditional breakpoint right? But I don't know why I get the error, not like his error which is pretty straightforward...Here is the error msg I get:

Index exceeds matrix dimensions.
Error in Regress_AODloop (line 16)
    data1=data1(:,date1(a:a+11,:));
Image Analyst on 9 May 2013

It's difficult for us to debug without values for date1 and date2. However now that you know how to debug, you will quickly discover what a and a+11 are, and why one of them is not in the valid index range of date1.

Image Analyst

Contact us