使用日期时间和数字传递.txt文件

时间:2018-11-17 18:01:04

标签: matlab datetime import

我正在尝试在Matlab中导入.txt文件(下面是随机行示例),我想从一个数组中的fisrt 2列(yyyy-mm-dd hh-mm-ss)中提取日期时间,单独数组中的其他变量。任何帮助将不胜感激。预先感谢!

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

]

1 个答案:

答案 0 :(得分:1)

您可以使用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}))创建一个带有空格的列,以分隔日期和时间以连接字符串,并将其转换为日期时间。

相关问题