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!