How to read .dat file using fopen??

9 views (last 30 days)
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 Comments
Walter Roberson
Walter Roberson on 11 Jun 2018
(Note: you can zip .dat files and upload the zip)
Vishnu Dhakad
Vishnu Dhakad on 11 Jun 2018
Edited: Vishnu Dhakad on 11 Jun 2018
Thanks,
Now,
I have attached it

Sign in to comment.

Accepted Answer

Walter Roberson
Walter Roberson on 11 Jun 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 Comments
Vishnu Dhakad
Vishnu Dhakad on 12 Jun 2018
Can you explain to me that why you use 'UTF8'?
Walter Roberson
Walter Roberson on 12 Jun 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.

Sign in to comment.

More Answers (0)

Tags

Community Treasure Hunt

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

Start Hunting!