How to inherit values from for loop into if else loop?
    4 views (last 30 days)
  
       Show older comments
    
This is my code :
for i=1:n
    Area(i)=k(i).Area;
    Diameter(i)=sqrt(4*[k(i).Area]/pi);
    MajorAxis(i)=k(i).MajorAxisLength;
end
Now I want to use the MajorAxis value into if else loop. Eg :-
if MajorAxis(i) < 0.002
    Clay(i)=MajorAxis(i);
end
But the (i) values from for loop are not being inherited.
3 Comments
  Jan
      
      
 on 25 Apr 2017
				This is unclear: "i values not performing the if else loop". I cannot imagine, what this should mean. There is neither an "if else loop", nor do loop counters "perform" anything - most of all not outside the loop.
Answers (1)
  Jan
      
      
 on 25 Apr 2017
        There is no magic "inheriting" of loop counters. I think the main problem is hiddon in your formulation "if else loop": The if command is not a loop.
You have to include the if into the loop:
Area      = zeros(1, n);  % Pre-allocate!
Diameter  = zeros(1, n);
MajorAxis = zeros(1, n);
Clay      = zeros(1, n);
for i=1:n
  Area(i)      = k(i).Area;
  Diameter(i)  = sqrt(4*[k(i).Area]/pi);
  MajorAxis(i) = k(i).MajorAxisLength;
  if MajorAxis(i) < 0.002
    Clay(i) = MajorAxis(i);
  end
end
Or you can omit the loop:
Area      = [k.Area];
Diameter  = sqrt(4 * Area / pi);
MajorAxis = [k.MajorAxisLength];
Clay      = zeros(1, n);
Index     = (MajorAxis < 0.002);
Clay(Index) = MajorAxis(Index);
1 Comment
See Also
Categories
				Find more on Loops and Conditional Statements in Help Center and File Exchange
			
	Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!

