Matlab:在循环中读取时间戳

时间:2014-04-14 13:41:27

标签: matlab loops csv

我需要读取几百个.csv数据文件,每个文件都有固定数量的列和可变行数类型:

'%s %d %d %d %u:%u %d %s %s %s %s'

对应于:

text1 2014 2 1 1:56 -2 text2 text3 text4 text5

我需要正确导入区分分钟和小时的时间戳,并将它们存储在2个单独的列中。


我的计划的一部分:

directory_name = 'C:\Deutsche_Bank\';
filePattern = [directory_name, filesep, '*.csv'];
files = dir(directory_name);
fileIndex = find(~[files.isdir]);
fileIndex = fileIndex';

for df = 3:size(fileIndex, 1)+2; %start always from 3
    fileName = files(df).name;
    TempFullName = [directory_name, filesep, fileName];
    fmt = '%s %d %d %d %u:%u %d %s %s %s %s';
    fid = fopen('TempFullName');
    MyTimeStamp = textscan(fid, fmt, 'delimiter', ',');
    fclose(fid);

    ... more matlab for data analysis

end

不幸的是,对于这个程序,MyTimeStamp中的输出是一组空单元格,而如果我直接指定文件:

fid = fopen('C:\Deutsche_Bank\myfile.csv');

我获得了一个很好的MyTimeStamp,并且数据存储正确。

似乎是产生问题的循环,但我不知道该怎么做。

1 个答案:

答案 0 :(得分:0)

您需要将fid = fopen('TempFullName')更改为fid = fopen(TempFullName)