Issue with fscanf not reading more than 1 row
5 views (last 30 days)
Show older comments
I'm trying to pull data from a file using fscanf. The data file is formatted as you see in the fscanf below, and has 20 rows. I'm only getting 1 row's worth of data stored into A. I thought fscanf was supposed to read till the end of the file but it seems to only be reading the one line. Is there a way to correct it so it stores the data from all 20 rows?
fid = fopen('myfile.dat');
fgetl(fid); fgetl(fid);
A = fscanf(fid,'%f %f %f %f %*s %*s');
B = reshape(A,4,20)'
0 Comments
Accepted Answer
Fangjun Jiang
on 22 Oct 2011
Check whether you have any special characters at the end of each line. I have similar program. It didn't have problem. Add fclose(fid) at the end just in case.
myfile.data contains the following
1 2 3 4 a b
1 2 3 4 a b
1 2 3 4 a b
1 2 3 4 a b
1 2 3 4 a b
1 2 3 4 a b
1 2 3 4 a b
1 2 3 4 a b
1 2 3 4 a b
1 2 3 4 a b
1 2 3 4 a b
1 2 3 4 a b
Run your code, it has
B =
1 2 3 4
1 2 3 4
1 2 3 4
1 2 3 4
1 2 3 4
1 2 3 4
1 2 3 4
1 2 3 4
1 2 3 4
1 2 3 4
More Answers (0)
See Also
Categories
Find more on Large Files and Big Data 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!