I am trying to print a cell array to a .txt file and the formatting needs to be perfect in order to import properly into another program.
I am using r2018b which does not support writecell or using fprintf with a cell array.
My current approach is converting the cell array into a table and then using writetable to export it to a .txt file. The problem is that the .txt file has a trailing new line at the end of the document that I don't want. Is there a way to export this data without the trailing new line?
Thank you!

1 Kommentar

Stakis93
Stakis93 am 28 Sep. 2020
Hi,
Have you found any solution to this issue ?
I'd like to export my table (using writetable) with the exact number of rows as well, and without the last extra empty row.
Thank you !

Melden Sie sich an, um zu kommentieren.

 Akzeptierte Antwort

Aditya
Aditya am 21 Nov. 2024

0 Stimmen

This is a legacy behavior that writetable has adopted from POSIX standards. Here's a post on why text files end with a newline:
A workaround would be by using low-level file IO functions. Here's a sample example on how to acheive it:
filename = 'SampleFile.txt';
cellArray = {'Name', 'Age'; 'Alice', 30; 'mark', 43,};
% Convert cell array to table
T = cell2table(cellArray(2:end,:), 'VariableNames', cellArray(1,:));
writetable(T,filename,'FileType','text','Delimiter','\t');
fid = fopen(filename, "r");
fidNew = fopen("UpdatedFile.txt", "w");
fseek(fid, -2, "eof");
pos = ftell(fid);
frewind(fid);
A = fread(fid, pos);
fwrite(fidNew, A);
fclose(fid);
fclose(fidNew);
Hope this helps!

1 Kommentar

Luke Hicks
Luke Hicks am 23 Nov. 2024
I haven't tested the answer, but looking over the code it seems like this would fit the need. Thank you!

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (0)

Produkte

Gefragt:

am 3 Apr. 2019

Kommentiert:

am 23 Nov. 2024

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by