Чтение файлов данных с определенным форматом в Matlab и преобразование даты в матальное последовательное время - PullRequest
1 голос
/ 30 июня 2011

У меня есть файл со следующей структурой:

29-JUN-1995 09:29:15   21.43   41.03   22.76    8.61 1  307.98    0.85  -9.99000e+002    -999.000000       2.050651       2.323905  4.86704e+015       6.869425       2.099744       2.135507    0.66  849.584  907.607   992
29-JUN-1995 09:29:19   24.62   40.12   20.67  -14.24 0  325.23    0.79  -9.99000e+002    -999.000000       2.095562       2.095562  3.95402e+015      10.898932       2.113338       2.113338    0.00   -1.000 1010.324   992
29-JUN-1995 09:29:21   21.32   40.68   22.56    8.61 1  309.55    0.86  -9.99000e+002    -999.000000       2.047019       2.399543  5.12189e+015       7.569622       2.097261       2.140599    0.30  859.620  898.692   992
02-JUL-1995 09:34:41   23.70   41.51   21.81  -14.24 0  310.98    0.85  -9.99000e+002    -999.000000       2.086681       2.346471  4.68335e+015       7.359228       2.118588       2.149808    0.37  751.101  902.940  1035

Мне нужна ваша помощь, чтобы импортировать в массив Matlab и преобразовать дату и время в последовательное время Matlab.

Ответы [ 2 ]

2 голосов
/ 30 июня 2011

Рассмотрим следующий код.Анализ выполняется с использованием функции TEXTSCAN :

%# read and parse date file
fid = fopen('data.dat','rt');
C = textscan(fid, ['%s %s ' repmat('%f',1,19)], 'CollectOutput',true);
fclose(fid);

%# convert date/time to serial date number
dt = datenum(strcat(C{1}(:,1), {' '}, C{1}(:,2)), 'dd-mmm-yyyy HH:MM:SS');

%# combine all in one matrix
M = [dt C{2}];
0 голосов
/ 22 марта 2013
>> datenum('29-JUN-1995 09:29:15')

ans =

    7.288393953125000e+005
...