Dimension mismatch - saving output from a for loop
    5 visualizaciones (últimos 30 días)
  
       Mostrar comentarios más antiguos
    
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 comentarios
Respuestas (2)
  per isakson
      
      
 el 17 de Feb. de 2015
        
      Editada: per isakson
      
      
 el 17 de Feb. de 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 comentarios
  per isakson
      
      
 el 17 de Feb. de 2015
				
      Editada: per isakson
      
      
 el 17 de Feb. de 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
      
      
 el 17 de Feb. de 2015
				
      Editada: per isakson
      
      
 el 17 de Feb. de 2015
  
			My mistake. Should read
    AB{i} =find(SS<=(0.9664*9.81*0.95));
Ver también
Categorías
				Más información sobre Animation en Help Center y File Exchange.
			
	Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!

