Create and populate field on existing structure. Impossible?
2 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos
MrGrady
el 13 de Sept. de 2013
Hi all,
I have created a structure and populated it with data from a cell array:
MyStruct=struct('Field1',num2cell(DFullData{1,1}),'Field2',num2cell(DFullData{1,2}))
Fabulous:
MyStruct =
1x461 struct array with fields:
Field1
Field2
Note that
>> MyStruct(1)
ans =
Field1: 7.354373336826041e+05
Field2: 2.407360200100000e+10
>> MyStruct(2)
ans =
Field1: 7.354373336883913e+05
Field2: 2.319540190100000e+10
How on earth do I create a Field3 and populate it like above (obviously without using a loop)?
Everything I tried ("setfield" and every permutation of squared and curly brackets!) populates only the first element with the whole cell array.
>> MyStruct().Field3=num2cell(DFullData{1,5})
>> MyStruct(1)
ans =
Field1: 7.354373336826041e+05
Field2: 2.407360200100000e+10
Field3: {1x461 cell}
>> MyStruct(2)
ans =
Field1: 7.354373336883913e+05
Field2: 2.319540190100000e+10
Field3: []
What is the correct syntax to populate each element of Field3 with each element of the cell array? Thanks!
0 comentarios
Respuesta aceptada
Más respuestas (2)
Azzi Abdelmalek
el 13 de Sept. de 2013
n=numel(DFullData{1,5})
for k=1:n
MyStruct(k).Field3=DFullData{1,5}(k)
end
0 comentarios
Azzi Abdelmalek
el 13 de Sept. de 2013
f=fieldnames(MyStruct)
g=struct2cell(MyStruct)
[n,m]=size(g)
g(n+1,1:m)=num2cell(DFullData{:,5})
MyStruct=cell2struct(g,[f;{'field3'}])
Ver también
Categorías
Más información sobre Structures 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!