0

我正在阅读一个如下所示的 CSV 文件:

  date        time      price volume exchange
20070813    10:26:38    7.626   3       E
20070925    12:58:24    7.535   69      E
20071218    10:45:47    8.24    50      E
20080117    14:23:58    8.046   100     E
20080117    16:22:44    8.04    1       E
20080319    13:52:40    8.25    1       E 
20080709    12:18:29    9.9     3       E

我读到这样的数据:

fid = fopen('E:\Tick Data\Data Output\NGQ11.csv','r'); 
[c] = fscanf(fid, '%d,%d:%d:%d,%f,%d,%c');

我想要一个列向量来保存所有的体积数据,我这样创建:

vv = c(6:7:end); %VOLUME VECTOR

现在我想要一个向量tt来保存所有的日期和时间数据,这样我就可以说

[yyyy,mm,dd,hr,mn] = datevec(tt);

我的问题是,我如何声明这个向量tt

4

1 回答 1

1

尝试以下操作:

fid = fopen('data.csv','rt');
C = textscan(fid, '%s %s %f %f %s', 'HeaderLines',1, 'CollectOutput',true);
fclose(fid);

[dt,val,exch] = deal(C{:});
dt = datenum(strcat(dt(:,1),{' '},dt(:,2)), 'yyyymmdd HH:MM:SS');

现在dt包含每条记录的日期/时间值的序列日期编号表示(自“0000 年 1 月 0 日”以来的天数)。然后,您可以使用 和 之类的函数datevecdatestr操作和格式化它:

[Y, M, D, H, MN, S] = datevec(dt)

val是一个 N×2 矩阵,其中第一列为“价格”,第二列为“交易量”。同样exch是带有交换符号的字符串元胞数组。

于 2013-06-17T19:29:55.807 回答