how to export a 2 dimensional cell array of strings with different lengths to an excel file?
2 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
A
am 8 Jan. 2016
Beantwortet: Walter Roberson
am 9 Jan. 2016
I understand XLSwrite only takes matrices. I cannot use matrices since every element is a string with different sizes
0 Kommentare
Akzeptierte Antwort
Walter Roberson
am 9 Jan. 2016
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 Kommentare
Weitere Antworten (0)
Siehe auch
Kategorien
Mehr zu Spreadsheets finden Sie in Help Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!