Writing Matlab Table to File
27 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
I am trying to find an easy way to print nicely-formatted tables to a text file. By "nicely-formatted," I mean the way that tables are displayed in the console (with spacing and column headers; see the example below). I was hoping 'fprintf' would do the trick, but this gives me an error. Surely there has to be a way?
>> names = ["Column 1", "Column 2"];
>> S = table([0; 1; 2; 3], [6; 4; 3; 7], 'VariableNames', names);
>> disp(S);
Column 1 Column 2
________ ________
0 6
1 4
2 3
3 7
>> file = fopen("newfile.txt", 'w');
>> fprintf(file, S);
Error using fprintf
Invalid format.
Note: There is a function 'writeTable,' but that produces raw data files (eg. comma delimited files), which isn't what I want.
0 Kommentare
Antworten (2)
Ive J
am 27 Dez. 2020
Bearbeitet: Ive J
am 27 Dez. 2020
First of all, you are using fprintf incorrectly, and thankfully all MATLAB errors are quite intuitive. This one tells you, you've forgotten to define a format for fprintf. For more info, see the function help.
Next, you've also missed to read writetable help; otherwise you would figure it out that the function allows you to set the delimiter.
S = table([0; 1; 2; 3], [6; 4; 3; 7], 'VariableNames', {'col1', 'col2'});
% write to a tab delimited file
writetable(S, 'newfile.txt', 'delimiter', '\t')
% check it
type newfile.txt
col1 col2
0 6
1 4
2 3
3 7
% read it again in MATLBA
Snew = readtable('newfile.txt')
col1 col2
____ ____
0 6
1 4
2 3
3 7
Jeff Miller
am 27 Sep. 2023
Try this:
str = formattedDisplayText(S);
str = erase(str,"<strong>");
str = erase(str,"</strong>");
fprintf(file,"%s",str);
0 Kommentare
Siehe auch
Kategorien
Mehr zu Data Type Identification 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!