Looping through Structure Elements

1 visualizzazione (ultimi 30 giorni)
Franco
Franco il 28 Feb 2013
I have this code, where I am trying to loop through structure elements.
month2=struct('January',1,'February',2,'March',3,'April',4,'May',5,'June',6,'July',7,'August',8,'September',9,'October',10,'November',11,'December',12);
year2 = struct('Twelve',1,'Thirteen',2);
fieldmonths = fieldnames(month2);
fieldyear = fieldnames(year2);
for i = 1:numel(fieldyear)
for j = 1:numel(fieldmonths)
temp1 = Electrical.(fieldyear{i}).(fieldmonths{j})(1,1);
end
end
Anyone know why this is telling me that Electrical.Twelve.February doesnt exist?

Risposta accettata

Leah
Leah il 28 Feb 2013
Because you are referencing Electrical.Twelve.February before it's created.
I'm not sure what your code is trying to do, but try replacing the temp1 line inside the loop with this:
Electrical.(fieldyear{i}).(fieldmonths{j})=[];
This will build an empty structure.
  2 Commenti
Franco
Franco il 28 Feb 2013
I guess I should have added that Im crating the structure before..Ooops!
for i = 1:a3
if date_4(i,1) == 1 && date_4(i,3) == 12;
Electrical.Twelve.January(i,:) = electrical_data(i,:);
elseif date_4(i,1) == 2 && date_4(i,3) == 12;
Electrical.Twelve.February(i,:) = electrical_data(i,:);
else
continue
end
end
Jan
Jan il 28 Feb 2013
@Franco: But the error message tells you unequivocally, that Electrical.Twelve.February does not exist. Perhaps the is no "date_4(i,3) == 12". While you can check this using the debugger, we can only guess these details.

Accedi per commentare.

Più risposte (0)

Categorie

Scopri di più su Structures in Help Center e File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by