将带标题的矩阵转换为.txt文件

时间:2011-11-18 10:05:13

标签: matlab import header text-files

如果我有一个维度矩阵[m n],我需要将矩阵导入制表符分隔的.txt文件,我会使用:

dlmwrite(文件名,数据,'分隔符','\ t');

但是,如果我需要.txt文件中每列上方的标题,我该怎么办?我需要定义每个单独的列,它们引用不同的数据集。

感谢

3 个答案:

答案 0 :(得分:2)

Silvado有正确的想法。这是我不时使用的黑客攻击:

outfile = '/path/to/file/output.out';
data = magic(5);
header='feat1,feat2,feat3,feat4,feat5'; 
dlmwrite(outfile,header,'delimiter','');
dlmwrite(outfile,data,'delimiter',',','-append');

结果是一个csv文件,标题为第一行。请注意,hack是将''的空分隔符与dlmwrite一起传递给预编译的头(您可以在循环中创建它以进行自动化)。如果性能是一个大问题,那么使用低级函数可能会更好。

答案 1 :(得分:1)

您可能需要先使用低级文件IO编写列标题,例如fprintf。然后,您可以使用'-append' dlmwrite选项在同一个文件中编写矩阵。

答案 2 :(得分:1)

我更喜欢由save生成的精心对齐的列,并使用dlmwrite只是为了使标题正确。

outfile = '/path/to/file/output.out';
data = magic(5);
header='feat1  feat2  feat3  feat4  feat5'; 
dlmwrite(outfile, header, 'delimiter', '');
save(outfile, data, '-ascii', '-append');