使用MATLAB读取和写入文件头

时间:2014-08-12 15:51:49

标签: matlab

我正在使用importdata读取.txt文件:

MC_file = importdata('D:\Simon\Dropbox\SGM\Gigerwald\Results\Multi_SGM_10000.txt');
Data = MC_file.data
Header = MC_file.colheaders

它给了我一个带头和数据体的结构变量:

data = 10000x52 double
colheaders = 1x52 cell

现在我想更改数据,即在文件末尾添加一些列,然后使用相同的标题+5个新列再次打印文件。

可以使用dlmwrite()轻松打印正文,例如像这样:

dlmwrite('SGM.txt',Data,'precision',8,'delimiter','\t','newline','pc','-append')

...但是如何将标题打印到文件中,我有一个单元格数组?我已经看过this,但由于我最终得到了57列硬编码不是一种选择......

1 个答案:

答案 0 :(得分:2)

使用repmat可以获得解决方案。假设您的文件是制表符分隔的,您可以使用:

NUM_COLS = 57;

A=cellstr(num2str((1:NUM_COLS)'))';
fid=fopen('newfile.txt','w');

fprintf(fid,repmat('%s\t ',[1,NUM_COLS]),A{:});
fclose(fid);

结果可以预览:

sprintf(repmat('%s\t ',[1,NUM_COLS]),A{:})