how to export a 2 dimensional cell array of strings with different lengths to an excel file?
2 次查看(过去 30 天)
显示 更早的评论
I understand XLSwrite only takes matrices. I cannot use matrices since every element is a string with different sizes
0 个评论
采纳的回答
Walter Roberson
2016-1-9
On MS Windows systems with Excel installed, xlswrite() is happy to take cell arrays. From the documentation:
"A: Input matrix, specified as a two-dimensional numeric or character array, or, if each cell contains a single element, a cell array.
If A is a cell array containing something other than a scalar numeric or a string, then xlswrite silently leaves the corresponding cell in the spreadsheet empty."
On MS Windows system that do not have Excel installed, and on OS-X and Linux systems, you are restricted to 'basic' mode, which does have a limitation of only supporting numeric data and csv output.
On those systems, if csv is acceptable, and for the case where A is a cell array containing only strings (and any empty entries are the empty string '' instead of the empty numeric []), then
fmt = [repmat('%s,', 1, size(A,2)), '%s\n'];
fid = fopen('YourOutput.csv', 'wt');
A_flip = A.'; %transpose needed
fprintf(fid, fmt, A_flip{:});
fclose(fid);
If you have a mix of strings and numeric values then more work is required to get the right output (especially if you have datenum or datetime values to be output as date strings.)
0 个评论
更多回答(0 个)
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Spreadsheets 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!