Combining many variables into one table
2 ビュー (過去 30 日間)
表示 古いコメント
I have 100 variables from simulink output all stored in a huge .mat file (after being collated from seperated .mat files). I just want a specific variable from each one in a table. The examples of making a table have a few variables in that you type the names manually to create the table.
T = table (results(1, 1).Collision1.signals.values, results(2, 1).Collision1.signals.values,results(3, 1).Collision1.signals.values, results(4, 1).Collision1.signals.values
I will have 300 so this isnt an option.
How can I get the specific variable out I want :
results(1, 1).Collision1.signals.values
results(2, 1).Collision1.signals.values
results(3, 1).Collision1.signals.values
******
results(99, 1).Collision1.signals.values
results(100, 1).Collision1.signals.values
and plot them all in one table?

(figure 1, variables from .mat resullts workspace)
Many thanks
Erin
0 件のコメント
回答 (2 件)
Benjamin Thompson
2022 年 3 月 10 日
You can use addvars in a for loop to successively add columns to a table. Note all table columns will need to have the same number of entries. I am guessing at variable names here but if you have further questions post sample data.
T = table();
for i = 1:N
T = addvars(T, results(i, 1).Collision1.signals.values,['results(' num2str(i) ', 1).Collision1.signals.values']);
end
4 件のコメント
Benjamin Thompson
2022 年 3 月 11 日
Yes the OP is free to use some alternative variable naming scheme.
Peter Perkins
2022 年 3 月 11 日
In recent MATLAB version, there's Simulink.Simulation.Dataset called extractTimetable. Not sure if that's what you have, but it might help.
0 件のコメント
参考
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!