Dimension mismatch - saving output from a for loop
    5 views (last 30 days)
  
       Show older comments
    
Just a straight forward question;
I am running a basic for loop;
    TT = length of some vector;
    for i = 2:TT
        SS = Section1X(yy(i-1):yy(i));
        AB =find(SS<=(0.9664*9.81*0.95));
        if numel(AB)>0
            NEW(i)=yy(i-1);
        end
    end
I want to store the values of AB on each loop and when I changed the code to AB(i,:) = find(SS..etc.) I get a dimension mismatch error.
0 Comments
Answers (2)
  per isakson
      
      
 on 17 Feb 2015
        
      Edited: per isakson
      
      
 on 17 Feb 2015
  
      The problem might be that find returns vectors, the length of which varies with i
Repolace
    AB(i,:) = find(SS..etc.)
by
    AB{i,:} = find(SS..etc.)
Another approach
    dbstop if error
and inspect the variables involved
2 Comments
  per isakson
      
      
 on 17 Feb 2015
				
      Edited: per isakson
      
      
 on 17 Feb 2015
  
			Copied to here by per isakson
I get the following error from this approach
??? Cell contents assignment to a non-cell array object.
Error in ==> METRICSFINAL2 at 177
  AB{i,:} =find(SS<=(0.9664*9.81*0.95));
  per isakson
      
      
 on 17 Feb 2015
				
      Edited: per isakson
      
      
 on 17 Feb 2015
  
			My mistake. Should read
    AB{i} =find(SS<=(0.9664*9.81*0.95));
See Also
Categories
				Find more on Animation 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!
