我有一个充满了数千个csv文件的文件夹。当我打开一个文件时,数据如下:
20110503 01:46.0 1527.8 1 E
20110503 01:46.0 1537.8 1 E
20110504 37:40.0 1536.6 1 E
20110504 37:40.0 1533.6 1 E
20110504 36:17.0 1531.1 1 E
第二列(时间)具有小数点前的分钟和秒。如果我选择第二列,右键单击并单击格式化单元格,选择时间,然后更改为13:30:55
模式,相同的数据如下所示:
20110503 19:01:46 1527.8 1 E
20110503 19:01:46 1537.8 1 E
20110504 0:37:40 1536.6 1 E
20110504 0:37:40 1533.6 1 E
20110504 8:36:17 1531.1 1 E
现在我可以看到小时,分钟和秒钟。我编写了一个读取这些文件的matlab函数,但需要能够读取小时数。该功能只能在我更改格式以显示小时后使用。现在我必须将该函数应用于文件夹中的所有文件。
我想知道,有没有办法更改默认时间显示所以包含小时数?如果没有,有没有办法编写脚本来改变这些文件的格式?谢谢!
注意:我的matlab函数中读取文件的部分如下:
fid = fopen('E:\Tick Data\Data Output\NGU13.csv','rt');
c = fscanf(fid, '%d,%d:%d:%d,%f,%d,%*c');
datamat = reshape(c,6,length(c)/6)'; % reshape into matrix
yyyymmdd = datamat(:,1);
hr = datamat(:,2);
mn = datamat(:,3);
sec = datamat(:,4);
pp = datamat(:,5); % price
vv = datamat(:,6); % volume
在Excel中:
在记事本中,您可以看到小时,分钟,秒和毫秒:
20111206,09:50:56.411,4.320,1,E
20111206,10:02:10.167,4.300,1,E
20111206,11:24:09.052,4.313,1,E
20111206,11:46:09.359,4.307,1,E
20111206,11:50:22.785,4.320,1,E
答案 0 :(得分:2)
有关类型的记录
20010402, 09:30:24.456, 4.235, 1, E
你应该使用这个fmt:
fmt = '%f%f:%f:%f.%f%f%*s';
data = textscan(fid, fmt, 'Delimiter',',','CollectOutput',true);