How Can I create struct field in a loop?

60 vues (au cours des 30 derniers jours)
Gianmarco Manzo
Gianmarco Manzo le 18 Jan 2020
Commenté : Gianmarco Manzo le 19 Jan 2020
Hello to all,
I have a problem with the struct. I have two nested for loops. With the innermost one I create a struct called 'strutt'. Once I get out of the internal one I have to allocate the whole structure to another structure in the different fields. The problem is that the field is always overwritten. here is the code. Can you help me?
for j=1:4
for i=1:10
strutt.a(1,i)=importdata(...)
strutt.b(1,i)=importdata(...)
..
end
soluz=struct(sprintf('hi%d',j),strutt);
end
  2 commentaires
Stephen23
Stephen23 le 18 Jan 2020
Rather than forcing numbers into fieldnames it would probably be more efficient to use a non-scalar structure
Gianmarco Manzo
Gianmarco Manzo le 19 Jan 2020

Connectez-vous pour commenter.

Réponse acceptée

prasanth s
prasanth s le 18 Jan 2020
'struct' command creates new structure. you have to create new structure at the starting of loop. add new fields to the structure inside the loop.
soluz=struct;
for j=1:4
for i=1:10
strutt.a(1,i)=1;
strutt.b(1,i)=2;
end
soluz.(sprintf('hi%d',j))=strutt;
end

Plus de réponses (0)

Catégories

En savoir plus sur Structures dans Help Center et File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by