【发布时间】:2009-12-15 03:52:25
【问题描述】:
我过去曾问过related question,感谢这里专家的帮助,我知道如何阅读该文件。现在我有一个新问题。我首先像这样从文件中读取数据:
fid = fopen('D:\file.txt', 'rt');
a = textscan(fid, '%s %f %f %f %f %f %f', ...
'Delimiter',',', 'CollectOutput',1, 'HeaderLines',1);
fclose(fid);
然后我处理文件并更改列的一些值。现在我想用新值以与我的file.txt 完全相同的格式编写一个新文件newfile.txt。我该怎么做?
如果我执行以下操作:
M = [datenum(a{1}) a{2}];
dlmwrite('newfile1.txt', M);
它给了我一个新文件,没有我的第一行标题,也没有我想要的格式的第 1 列和第 2 列。
我的文件格式如下:
date time, M01, M02, M03, M04, M05, M06
8/15/2009, 0:00:00, 5.8, 7.8, 7.8, 7.3, 0, 7.9
8/15/2009, 0:10:00, 7.1, 8.1, 8.1, 7.7, 0, 8.1
8/15/2009, 0:20:00, 6.8, 7.4, 7.6, 7.1, 0, 7.3
8/15/2009, 0:30:00, 5.6, 6.8, 7.1, 6.6, 0, 6.8
8/15/2009, 0:40:00, 3.9, 6.2, 6.4, 6.2, 0, 6.4
8/15/2009, 0:50:00, 4.6, 5.5, 6.1, 5.8, 0, 5.6
8/15/2009, 1:40:00, 7, 7, 7.2, 6.9, 0, 6.3
我可以制作一个新的 file.txt 格式
我的文件格式如下:
5.8, 7.8, 7.8, 7.3, 0, 7.9
7.1, 8.1, 8.1, 7.7, 0, 8.1
6.8, 7.4, 7.6, 7.1, 0, 7.3
5.6, 6.8, 7.1, 6.6, 0, 6.8
3.9, 6.2, 6.4, 6.2, 0, 6.4
4.6, 5.5, 6.1, 5.8, 0, 5.6
7, 7, 7.2, 6.9, 0, 6.3
有人可以帮我将标题和前 2 列复制到这个新文件中吗?
【问题讨论】:
-
有什么想法吗?我试过覆盖,但它不起作用
-
@AP:我编辑了您的问题以修复数据文件的格式。看来您在日期和时间之间有一个额外的
,,而您之前的问题中没有(这导致您读取文件的代码失败)。 -
@gnoice:不,我确实有,我每天都以不同格式获取文件,我阅读的最简单方法是 data=dlmread('D:\file.txt,',',1,2) ;并由 dlmwrite ('newfile.txt',data,',',1,2);
-
@gnoice : fid = fopen('d:\file.txt,'r');头=fgetl(fid);这给了我标题我不知道 2 如何获得 1,2 列以及如何在我的 newfile.txt 中添加此标题
-
@AP:您在问题顶部用于读取数据文件的代码不适用于您作为示例提供的文件格式。
标签: matlab file-io text-files