MATLAB将字符串和表写入文件



我需要在一个文本文件中写入一个字符串和一个表。该字符串包含表中数据的描述,但不是表的标题。我使用R2019a,我想这意味着";追加"写表选项不起作用?请参阅下面的示例数据:

% Load data
load cereal.mat;
table =  table(Calories, Carbo, Cups, Fat, Fiber, Mfg, Name, Potass);
string = {'This is a string about the cereal table'};
filename = "dummyoutput.sfc";
% How I tried to do this (which does not work!)
fid = fopen(filename, 'w', 'n');
fprintf(fid, '%s', cell2mat(string))
fclose(fid);
writetable(table, filename, 'FileType', 'text', 'WriteVariableNames', 0, 'Delimiter', 'tab', 'WriteMode', 'Append')

我得到这个错误:

Error using writetable (line 155)
Wrong number of arguments.

有人对如何进行有什么建议吗?

谢谢!

有点古怪,但这里有一个想法。

  • 将现有表转换为具有table2cell的单元格数组
  • 准备一行单元格,该行由字符串组成,后面跟着空单元格
  • 将单元格数组转换回具有cell2table的表,并将新表写入文件

load cereal.mat;
table =  table(Calories, Carbo, Cups, Fat, Fiber, Mfg, Name, Potass);
s = {'This is a string about the cereal table'};
filename = "dummyoutput.sfc";
new_table = cell2table([[s repmat({''},1,size(table,2)-1)] ; table2cell(table)]);
writetable(new_table,filename,'FileType','text','WriteVariableNames',0,'Delimiter','tab');

>> !head dummyoutput.sfc
This is a string about the cereal table                          
70  5   0.33    1   10  N   100% Bran   280 
120 8   -1  5   2   Q   100% Natural Bran   135 
70  7   0.33    1   9   K   All-Bran    320 
50  8   0.5 0   14  K   All-Bran with Extra Fiber   330 
110 14  0.75    2   1   R   Almond Delight  -1 
110 10.5    0.75    2   1.5 G   Apple Cinnamon Cheerios 70 
110 11  1   0   1   K   Apple Jacks 30 
130 18  0.75    2   2   G   Basic 4 100 
90  15  0.67    1   4   R   Bran Chex   125 

相关内容

  • 没有找到相关文章

最新更新