unable to import data with textscan

1 view (last 30 days)
Lei
Lei on 2 Feb 2012
Edited: Iranga on 15 Oct 2013
I tried many times to import a file with textscan, but there's always some problem. i.e. the data didnt display correctly.
Here is a few rows of my data, its actually not complicated
Station,East,North,Zinv,ResInv,Res0,Rerr0,dzW,Rerr,Rsns
"From RSTEMINV v3.30e Date:02/02/12 Time:10:26:56"
0,0,0,0,4.6440E+0,4.8214E+0,500,2,8.89,81.89
0,0,0,-2.5,4.6440E+0,4.8214E+0,500,2,8.89,81.89
0,0,0,-7.82,5.0684E+0,5.4622E+0,500,1,8.84,35.03
0,0,0,-13.82,6.1425E+0,6.6325E+0,500,1,12.56,49.84
0,0,0,-20.589,8.3816E+0,8.4243E+0,500,1,13,32.51
0,0,0,-28.223,1.1675E+1,1.0656E+1,500,1,15.36,23.87
and my code is
fid=fopen('TEM1D1_1.m1d');
A=textscan(fid,'%u',10,'headerline',2);
I dont know why, is it because this file badly formatted?
Anybody would like to give me a hand?
Thanks in advance.

Accepted Answer

Walter Roberson
Walter Roberson on 2 Feb 2012
The %u format is only for unsigned integers, but some of your data is signed (negative) and some of it is non-integer.
Use %g not %u
  6 Comments
Walter Roberson
Walter Roberson on 2 Feb 2012
The number, 10, that you give, is the number of repetitions of the format to use. When the format is '%f' or any other numeric form, that means to read 10 numbers, not 10 lines.
numcol = 10;
fmt = repmat('%f',1,numcol);
A = textscan(fid, fmt, 'headerlines', 2, 'delimiter', ',');
Lei
Lei on 18 Feb 2012
Hi walter,
just saw ur reply today,its weird cauz i didnt get an email notice.
Yeah, you were right. I didnt realized that before.
Thanks for your help!
and your code works perfectly.
thanks again^_^

Sign in to comment.

More Answers (0)

Categories

Find more on Data Import and Export in Help Center and File Exchange

Community Treasure Hunt

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

Start Hunting!