How can I put a struct output into the i-th field of a struct on MATLAB?
1 visualización (últimos 30 días)
Mostrar comentarios más antiguos
I have a for loop that runs a simulation 100 times. The results of that simulation go into a struct. For simulation run I have out.S, out.I, out.R and I want to then store the results of each simulation within another struct or array so I can then work out the average output across the 100 simulations.
Anyone any ideas of how to store the output from a for loop using structs? I usually use arrays but this one requires structs.
0 comentarios
Respuestas (2)
madhan ravi
el 23 de Nov. de 2018
Editada: madhan ravi
el 23 de Nov. de 2018
Use dot indexing to create a struct() , see https://www.mathworks.com/matlabcentral/answers/321489-how-can-i-create-a-structure-with-a-loop#answer_251562
for ...
S.result(i)... % S is your struct
end
0 comentarios
Luna
el 23 de Nov. de 2018
Editada: Luna
el 23 de Nov. de 2018
Hi,
You can do it as follows:
After that you have out.S as an array so you can assign it to any other struct.
for i =1:NumberOfSimulations
out.S(i) = simResult1;
out.I(i) = simResult2;
out.R(i) = simResult3;
end
or you can do below:
Your outputs will be different struct arrays.
for i = 1:NumberOfSimulations
S.result(i) = out.S;
I.result(i) = out.I;
R.result(i) = out.R;
end
0 comentarios
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!