Why is sscanf skipping 2 columns on second line?
Show older comments
Hi!
I have a text file that has four numeric values on every other line and a date on every other. Sscanf auotmatically skips the date lines, just as I want it to. Howver, when it starts reading the numeric lines, on the second line it only grabs values from the first two columns(four exist altogether). All the other lines are treated correctly. What might be going on? The source file in question is attached to this message.
THanks a lot in advance!
fid2=fopen('allMeasurements.txt','at');
R=0;
D= [9 11 12];
for i = D;
s1=num2str(i);%Next lines creat filename
if i<10;
s0='0';
s1=strcat(s0,s1);
end
s0='000';
s=strcat(s0,s1,'.txt');
sd='data';
s=strcat(sd,s);
fid=fopen(s, 'rt');
while fgetl(fid)~=-1;
R=R+1;
A = sscanf(tline,'%f', [1,4]);%The 4 columns are stored in A
fprintf(fid2,'%f %f\n',B);
end
fclose(fid);
end
fclose(fid2);
3 Comments
A much simpler way to build your filename would be with just one line:
filename = sprintf('data%05d', filenumber); %filename will consist of data always followed by 5 digits padded with as many zeros as necessary
%where filenumber is your badly named i and filename is your badly named s
Use descriptive names for your variables. It makes it much easier for readers unfamiliar with your code to understand what is going on.
That part of the code:
while fgetl(fid)~=-1;
R=R+1;
A = sscanf(tline,'%f', [1,4]);%The 4 columns are stored in A
fprintf(fid2,'%f %f\n',B);
end
makes no sense at all. It reads a line from the file and discard the content immediately, then reads floating value from a tline string that is not declared anywhere and never change.
What is the real code you're using?
Mak
on 31 May 2017
per isakson
on 31 May 2017
Edited: per isakson
on 31 May 2017
Remove the extra dot on line 4

and try
fid = fopen('data00009.txt');
cac = textscan( fid, '%*s\n%f%f%f%f', 'Delimiter','\t', 'CollectOutput',true );
fclose( fid );
>> cac
cac =
[60x4 double]
>> version
ans =
9.0.0.341360 (R2016a)
Answers (0)
Categories
Find more on Characters and Strings in Help Center and File Exchange
Products
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!