How to write cell array to excel file
25 views (last 30 days)
Show older comments
parham kianian
on 9 Apr 2020
I have a cell array whose elements have different sizes. How can I write it to an excel file?
For example:
a = rand(10,1);
b = rand(5,1);
c = rand(4,8);
X = {a, b, c};
How can I export X to an excel file?
0 Comments
Accepted Answer
Walter Roberson
on 9 Apr 2020
If the desired output is a worksheet in which the first column has 10 rows, and the second column has 5 rows, and then the next 8 columns have 4 rows, with the unused portions of each column being empty: then you cannot directly do that.
However, you can use:
vars = {a,b,c};
varnames = {'a', 'b', 'c'};
rows = cellfun(@(M) size(M,1), vars);
cols = cellfun(@(M) size(M,2), vars);
maxrows = max(rows);
T = table();
for K = 1 : length(varnames)
T.(varnames{K}) = [vars{K}; nan(maxrows - rows(K), cols(K))];
end
writetable(T, 'X.xlsx');
More Answers (2)
BN
on 9 Apr 2020
Edited: BN
on 9 Apr 2020
Try this:
writecell(X, 'X.xlsx')
2 Comments
Walter Roberson
on 9 Apr 2020
The result of that would be a single row with numel(a)+numel(b)+numel(c ) columns.
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!