Problems with te output of writetable function
10 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
Wesso
am 3 Mär. 2019
Kommentiert: Walter Roberson
am 4 Mär. 2019
writetable(E,'FinalMatlab.csv')
I ended up with the attached output. in row 33 the columns were not written completely and instead were written on the next row (before ID 34). Also, it would be great if NaT and Nan could be replaced by empty cells.
Any help would be greatly appreciated
3 Kommentare
Akzeptierte Antwort
Guillaume
am 4 Mär. 2019
Walter was correct, some of your text fields contain newlines. So, of course, when the newlines are written it messes up the file for some csv readers. Note that any entry with newlines are enclosed in double quotes, so if the parser works detects quoted strings properly it should read the file correctly.
Probably best, is to get rid of these newlines characters. An easy way:
yourtable(:, vartype('cellsttr')) = varfun(@(v) regexprep(v, '[\n\r]', ''), yourtable(:, vartype('cellstr')));
writetable(yourtable, 'something.csv');
You might similarly want to get rid of commas within your text (or replace them with something else), if it's going to confuse your reader.
3 Kommentare
Guillaume
am 4 Mär. 2019
Oops, typo, should be 'cellstr' not 'cellsttr'. It's spelled correctly in the 2nd occurence.
Walter Roberson
am 4 Mär. 2019
I would probably replace with a space rather than with emptiness so that adjacent words do not run together. Or I would replace with '\\n' to put literal character pair \n as the replacement, expecting you to transform them back upon reading.
Weitere Antworten (0)
Siehe auch
Kategorien
Mehr zu Logical 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!