Передача файла .txt с датой и временем - PullRequest
0 голосов
/ 17 ноября 2018

Я пытаюсь импортировать файл .txt в Matlab (случайная выборка строк ниже), и я хочу извлечь время даты из первых двух столбцов в одном массиве (гггг-мм-дд чч-мм-сс) и другие переменные в отдельных массивах. Любая помощь будет принята с благодарностью. Заранее спасибо!

[2018-09-02 23:43:28   25081.98851852   6814.4920 0.0003411   87.40215    8.98677   92.81546  299.03342

]

1 Ответ

0 голосов
/ 17 ноября 2018

Вы можете использовать textscan для чтения данных в любом формате и получения всех столбцов в массиве ячеек.Это приведет к вашему случаю в массиве ячеек 1x9, где каждая ячейка будет содержать данные в строке.

% load file and scan the text
fileID = fopen('data.txt');
text_data = textscan(fileID,'%s %s %f %f %f %f %f %f %f');
fclose(fileID);

% obtain date and time in string format
date_cell = cell2mat([text_data{1} repmat({' '}, size(text_data{1})) text_data{2}]);

% convert to datetime
dates = datetime(date_cell,'InputFormat','yyyy-MM-dd HH:mm:ss');

% convert rest of data to matrix
data = [text_data{3:end}];

Используйте %s для импорта даты и времени в виде строк и %f для импорта других столбцов в виде двойных чисел.

repmat({' '}, size(text_data{1})) создает столбец с пробелами, чтобы разделить дату и время, объединить строки и преобразовать их в datetime.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...