0

我已经和 fprintf 打了一个小时了,应该很容易,但显然不是。有一个称为 的描述性统计向量datasave,包含 9 个数字,如平均值、标准偏差、峰度等。

我有一个datalabels带有标签的向量 'Average' , '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 种不同的组合,所以我真的不能给你我的输出......

4

2 回答 2

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
于 2013-04-15T13:51:11.627 回答
1

要使用 XLSWRITE,您需要创建一个元胞数组:

out = [datalabels(:)'; num2cell(datasave)];
xlswrite('descstat2', out)

如果您要保存到的文件作为文本文件存在,xlswrite则也将其另存为文本。

它可能会更慢fprintf(由于 COM 接口),但您不必处理格式化输出。只需要将所有内容都转换为单元格。


另一种选择是使用 Statistical Toolbox 中的 TBLWRITE。你可以这样做:

tblwrite(datasave, datalabels, [], filename, '\t')

它还将放置指定为第三个参数的行号或标签。可能对某些数据有用。

于 2013-04-15T14:58:07.960 回答