define end of line (eol) as unix (\n) not Windows (\r\n) using writecell
조회 수: 37 (최근 30일)
이전 댓글 표시
I've got a cell of strings I'd like to write to a text file using the writecell funciton, however, the end of line (eol or newline or line break) is in Windows format (\r\n or CR LF) but I need it to be in Unix (\n or LF).
I'm using Windows OS.
Code to generate text file output:
my_cell_of_strings = [{"Some string"}; {"Another string"}];
writecell(my_cell_of_strings, 'testEOL.', 'FileType','text', 'QuoteStrings', false)
Then e.g. opening in Notepad++ I can see the format is Windows (CR LF) but I need Unix (LF)
I see dlmwrite has the Name-Value pair 'newline' (https://uk.mathworks.com/help/matlab/ref/dlmwrite.html#btzn85y-1-newline) but writecell doesn't seem to.
Are there any simple solutions?
(I can open in Notepad++ and convert eol but it's not really feasible for many files so needing to do it programatically).
(I could use a loop and fprintf etc. but like the convenience of writecell)
Thanks in advance!
Chris
댓글 수: 2
Stephen23
2020년 12월 14일
WRITECELL is ultimately just a wrapper around WRITETABLE.
WRITETABLE calls matlab.io.internal.writing.writeToTextFile, which does not seem to have any option for changing the EOL character. Most likely Walter Roberson is the right person to ask about this.
채택된 답변
Jan
2020년 12월 14일
What about writing directly?
C = [{"Some string"}; {"Another string"}];
fid = fopen('testEOL.txt', 'w');
fprintf(fid, '%s\n', C{:});
fclose(fid)
참고 항목
카테고리
Help Center 및 File Exchange에서 Data Type Identification에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!