我已经和fprintf争战了一个小时了,应该很容易,但事实并非如此。
有一个名为datasave
的描述性统计数据的向量,包含9个数字,如平均数,标准开发数,峰度数等。
我有一个矢量datalabels
,其中包括'平均','St.dev','Kurt'等。
使用fileopen打开文件
打印标签
新线
打印值(正好在标签下!)
关闭文件
这是我到目前为止所尝试的:
fileID = fopen('descstat2.txt','w');
fprintf(fileID,'MediaTonnes MinTonnes MaxTonnes Sigma Skew Kurt SigmadTonnes SkewdTonnes KurtdTonnes\r\n');
format short;
fprintf(fileID, '%g\t%g\t%g\n', datasave.');
帮助?
我至少有50种不同的组合,所以我无法真正给你输出......
答案 0 :(得分:1)
也许试试这个:
fileID = fopen('descstat2.txt','w');
fprintf(fileID,'%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\r\n', datalabels);
fprintf(fileID, '%g\t%g\t%g\t%g\t%g\t%g\t%g\t%g\t%g\r\n', datasave);
fclose
答案 1 :(得分:1)
要使用XLSWRITE,您需要创建一个单元格数组:
out = [datalabels(:)'; num2cell(datasave)];
xlswrite('descstat2', out)
如果您要保存的文件作为文本文件存在,xlswrite
也会将其另存为文本。
它可能会慢fprintf
(由于COM接口),但您不必处理格式化输出。只需将所有内容转换为单元格。
另一个选择是使用统计工具箱中的TBLWRITE。你可以这样做:
tblwrite(datasave, datalabels, [], filename, '\t')
它还会将行号或标签指定为第3个参数。对某些数据可能有用。