我正在使用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列硬编码不是一种选择......
答案 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{:})