Export arrays to excel
173 views (last 30 days)
Show older comments
I have 14 arrays that i would like to export to a single excel file. All arrays are of the size 1x5000. I'd like the excel file to be structured like this:
variable 1 value1 value2 value3 ..... value n
variable2 value1 value2 value3 ..... valuen
What i have now is this:
t = table(time, area, volume, radii1, radii2, centre1, centre2);
t = rows2vars(splitvars(t));
writetable(t, append(save_name,'.xlsx'))
The excell file looks like this:
time1 val1
time2 val2
time3 val3
.
.
.
.
timen valn
And so on for all the arrays.
Does anybody have any tips?
0 Comments
Accepted Answer
Jeremy Hughes
on 10 Apr 2022
If each variable is 1x5000 then your original code is creating a 1x35000 block of data when you put it in the table. This is valid since a table can have multi-column variables.
What you want to do is flip the vectors to 5000x1, giving you a 5000x7 table, then rows2vars will make that 7x5000.
t = table(time', area', volume', radii1', radii2', centre1', centre2');
t = rows2vars(t);
writetable(t, append(save_name,'.xlsx'))
Another way to do this is to write each as a row in a large matrix. (Assuming each is a double)
writematrix([time; area; volume; radii1; radii2; centre1; centre2], filename)
Or if time is datetime, or duration
writematrix(time, filename)
writematrix([area; volume; radii1; radii2; centre1; centre2], filename,"Writemode","Append")
3 Comments
Walter Roberson
on 11 Apr 2022
Edited: Walter Roberson
on 11 Apr 2022
t = table(time', area', volume', radii1', radii2', centre1', centre2', 'VariableNames', {'time', 'area', 'volume', 'radii1', 'radii2', 'center1', 'center2'});
writetable(t, filename)
More Answers (0)
See Also
Categories
Find more on Spreadsheets in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!