How to read .dat file using fopen??
9 vues (au cours des 30 derniers jours)
Afficher commentaires plus anciens
Vishnu Dhakad
le 11 Juin 2018
Commenté : Walter Roberson
le 12 Juin 2018
I want to read a .dat using following code but I am not getting any data.
there is not allowed to upload .dat file so i uploaded in a text file fomate.
fbc = fopen('AE33.dat');
BC = fscanf(fbc, '%.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');
fclose(fbc);
2 commentaires
Réponse acceptée
Walter Roberson
le 11 Juin 2018
fmt = ['%{YYYY/MM/dd}D %{HH:mm:ss}D', repmat('%f', 1, 71)];
fbc = fopen('AE33.dat', 'rt', 'n', 'UTF8');
BC = textscan(fbc, fmt, 'HeaderLines', 7, 'CollectOutput', true);
fclose(fbc);
dt = BC{1}+(BC{2}-dateshift(BC{2},'start','day'));
dt.Format = 'default';
numbers = BC{3};
Now dt is a vector of datetimes read in from the first two columns of the lines, and numbers is a numeric array with 71 columns representing the data on each line after the date/time entries.
3 commentaires
Walter Roberson
le 12 Juin 2018
When I had a look at the content of your file, I saw that before the first few readable text characters, there were a couple of non-printable characters, which I recognized as being UTF Byte Order Mark that indicated UTF encoding was being used and which UTF was being used. I ran an old program of mine that analyzes UTF encoded files and it told me that the file was plain UTF-8.
Plus de réponses (0)
Voir également
Catégories
En savoir plus sur Data Import and Analysis dans Help Center et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!