1

我在第一列中有以下带有日期时间的文本文件。该文件是:

23/7/1998 20:00;"   1.8 "
23/7/1998 21:00;"   1.7 "
23/7/1998 22:00;"   2.2 "
23/7/1998 23:00;"   2.5 "
24/7/1998 0:00;"    2.2 "
24/7/1998 1:00;"    2.3 "
24/7/1998 2:00;"    2.4 "
24/7/1998 3:00;"    1.8 "
24/7/1998 4:00;"    1.9 "

我想将第一列(日期时间)作为字符串。我尝试了该功能datenum,但没有成功。有什么帮助吗?

先感谢您

4

2 回答 2

1

您可以简单地逐行读取文件并将所需数据存储到元胞数组中,如下所示:

f_read = fopen('testcase.txt','r');    %The file 'testcase.txt' would contain the data of interest.
pat = '(?<datetime>[^;]*)(.*)';    %Regular expression to extract required field.
datetime = cell(0,1);
line = fgets(f_read);
while(line ~= -1)    %Till the end of file.
    line = regexp(line, pat, 'names');    %Extracts first column from input line.
    datetime = [datetime;line.datetime];    %Append result as next row.
    line = fgets(f_read);
end

对于您的输入,结果将是:

>> datetime

datetime = 

    '23/7/1998 20:00'
    '23/7/1998 21:00'
    '23/7/1998 22:00'
    '23/7/1998 23:00'
    '24/7/1998 0:00'
    '24/7/1998 1:00'
    '24/7/1998 2:00'
    '24/7/1998 3:00'
    '24/7/1998 4:00'

可以按如下方式访问每个单独的记录:

>> datetime{1}

ans =

23/7/1998 20:00
于 2013-03-25T10:58:14.263 回答
1

您需要手动读取字符串:

fid = fopen('yourfile.txt','r');
aux_cell  = textscan(fid,'%s');
date_cell = aux_cell{1}(1:4:end);
fclose(fid); 
于 2013-03-25T10:18:56.040 回答