Substruct array disappear when a struc object is assigned
Mostra commenti meno recenti
Hi guys,
I have started to use struct to create nested arrays which will be assigned in a second time , for example:
S = struct( ...
'A', struct( ...
'A_ID', struct( ...
'C', [], ...
'D', [], ...
'E', struct( ...
'EF',[], ...
'EG',[], ...
'EH',[], ...
'EI',[]))));
but when i try to assign the object values, something strange happens, the substructure information disappeares. For examples i assign to the first postion of the object A_ID the value of C = 'test1'
S.A.A_ID(1).C='test1'
and i obtain
S.A.A_ID(1) =
- C: 'test1'
- D: []
- E: [1x1 struct]
now if i assign a new value for C in a new position of A_ID for example
S.A.A_ID(2).C='test2'
i don't obtain
S.A.A_ID(2) =
- C: 'test2'
- D: []
- E: [1x1 struct]
but
S.A.A_ID(2) =
- C: 'test2'
- D: []
- E: []
and i lost all the information contained in the nested struct E !!
i don't really understand why, have someone an idea??
thank's in advance
Luca
Risposta accettata
Più risposte (1)
Walter Roberson
il 10 Apr 2016
0 voti
You need to assign a copy of the master layout and then change the fields you want changed. MATLAB automatically extends with 0s or empty (or NAt, Not a Time, for datetime arrays) and never automatically copies from templates
1 Commento
Luca Di Leta
il 10 Apr 2016
Modificato: Luca Di Leta
il 10 Apr 2016
Categorie
Scopri di più su Structures in Centro assistenza e File Exchange
Prodotti
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!