Dimension mismatch - saving output from a for loop

3 vues (au cours des 30 derniers jours)
Bran
Bran le 17 Fév 2015
Modifié(e) : per isakson le 17 Fév 2015
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.

Réponses (2)

per isakson
per isakson le 17 Fév 2015
Modifié(e) : per isakson le 17 Fév 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 commentaires
per isakson
per isakson le 17 Fév 2015
Modifié(e) : per isakson le 17 Fév 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
per isakson le 17 Fév 2015
Modifié(e) : per isakson le 17 Fév 2015
My mistake. Should read
AB{i} =find(SS<=(0.9664*9.81*0.95));

Connectez-vous pour commenter.


Bran
Bran le 17 Fév 2015
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));

Catégories

En savoir plus sur Desktop dans Help Center et File Exchange

Tags

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by