Writing Matlab Table to File
49 ビュー (過去 30 日間)
古いコメントを表示
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 件のコメント
回答 (2 件)
Ive J
2020 年 12 月 27 日
編集済み: Ive J
2020 年 12 月 27 日
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
2023 年 9 月 27 日
Try this:
str = formattedDisplayText(S);
str = erase(str,"<strong>");
str = erase(str,"</strong>");
fprintf(file,"%s",str);
0 件のコメント
参考
カテゴリ
Help Center および File Exchange で Tables についてさらに検索
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!