Best practice to preallocate for exporting simulation data
    2 views (last 30 days)
  
       Show older comments
    
I want to run several Simulink simulations of the same model, with different parameters, and store all the logged data in all the simulations for further analysis in the workspace. I have read the different approaches to export simulation data. In a for sim() end approach, what should we preallocate? logsout and tout are structures, so how do I preallocate a structure of structures? Is there a better approach to achieve the same?
preallocation_logs = ???????;
preallocation_times = ???????;
for i=1:number_of_simulations
    % (update some simulation parameter here)
    sim('simulink_model');
    preallocation_logs(i) = logsout;
    preallocation_times(i) = tout;
end
0 Comments
Accepted Answer
  Jan
      
      
 on 30 May 2018
        preallocation_logs  = cell(1, number_of_simulations);
preallocation_times = cell(1, number_of_simulations);
for k = 1:number_of_simulations
  % (update some simulation parameter here)
  sim('simulink_model');
  preallocation_logs{:} = logsout;
  preallocation_times{:} = tout;
end
With a cell array you do not have any limitations of the output. You can concatenate the result afterwards easily by a cat command.
0 Comments
More Answers (0)
See Also
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!
