I am trying to collect data from a .txt file and add it into a matrix in Matlab for plotting purposes, but there seems to be an error when collecting the data. It seems to be happening with the time record.
I am using the following code snippet.
fileID = fullfile('SI010118.txt')
C = textscan(fileID, '%{dd.MM.yyyy}D %{HH:MM:SS}T %f %f %f %f %f %f %f %d %d %d %f %f %f %f %f %f %f %f %f %f %f %f %f %f %f %f %f %f %f %f %f %f %f %f %f %f %f %f %f %f %f %f %f %f %f %f %f %f %f %f %f %f %f %f %f %f %f %f %f %f %f %f %f %f %f %f %f %f %f %f %f %f %f %f %f %f %f %f %f %f %f %f %f %f %f %f %f %f %f %f %f %f %f %f %f %f %f %f %f %{HH:MM:SS}T %f %f %f %f %f %f %f %f %f %f %f %f %f %f %f %f %f %f %f %f %f %f %f %f %f %f %f %f %f %f %f %f %f %f %f %f %f %f %f %f %f %f %f %f %f %f %f %f %f %f %f %f %f %f %f')
The error shows as follows.
Error using textscan
Unable to parse the format character vector at position 16 ==> %{HH:MM:SS}T %f %f %f %f %f %f %f %d %d %d %f %f %f %f %f %f %f %f %f %f
%f %f %f %f %f %f %f %f %f %f %f %f %f %f %f %f %f %f %f %f %f %f %f %f %f %f %f %f %f %f %f %f %f %f %f %f %f %f %f %f %f %f %f %f %f
%f %f %f %f %f %f %f %f %f %f %f %f %f %f %f %f %f %f %f %f %f %f %f %f %f %f %f %f %f %f %f %f %f %f %{HH:MM:SS}T %f %f %f %f %f %f %f
%f %f %f %f %f %f %f %f %f %f %f %f %f %f %f %f %f %f %f %f %f %f %f %f %f %f %f %f %f %f %f %f %f %f %f %f %f %f %f %f %f %f %f %f %f
%f %f %f
Date formats must be of the form %T or %{...}T.
The .txt file I am using is attached.

1 件のコメント

Paolo
Paolo 2018 年 7 月 23 日
編集済み: Paolo 2018 年 7 月 23 日
That second datetime format should be:
%{HH:mm:SS}D
D is for datetime and T is for duration.
Also if you are trying to read starting from the line which starts with:
01.01.2018 00:00:44;29.59;30.16;29.59; etc...
You should use HeaderFiles name value pair when using textscan function.

サインインしてコメントする。

 採用された回答

Jeremy Hughes
Jeremy Hughes 2018 年 7 月 23 日

1 投票

The format should be all lower case for duration.
%{hh:mm:ss}T
However, the data appears to be delimited as semicolon. You'd have more luck with readtable:
opts = detectImportOptions('D:\SI010118.txt')
opts = setvartype(opts,1,'datetime')
opts = setvaropts(opts,1,'InputFormat','dd.MM.uuuu HH:mm:ss')
readtable('D:\SI010118.txt',opts)

1 件のコメント

Chamath Vithanawasam
Chamath Vithanawasam 2018 年 7 月 24 日
This works when put into a script. Thanks!

サインインしてコメントする。

その他の回答 (0 件)

製品

リリース

R2017b

タグ

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by