textscan trouble: starting file position on re-read

2 次查看(过去 30 天)
I'm trying to read a data file of integers. The file is formatted as follows:
-112-999-999-999-555
-999-999
-777 0 0 0 0
0 20
-757 11 0 0 0
0 0
There are 3 blocks of 7 numbers each.
I tried
fid=fopen('filename.txt')
textscan(fid,'%4d',7)
And got the following as expected.
-112
-999
-999
-999
-555
-999
-999
But then I issue &nbsp textscan(fid,'%4d',7) &nbsp again. I would expect to get the second block this time, but instead I get:
2
-999
-999
-999
-555
-999
-999
It seems textscan started reading at the wrong place (not where it left off).
Any thoughts why it's doing this?
Thanks, David
  5 个评论

请先登录,再进行评论。

回答(1 个)

Image Analyst
Image Analyst 2014-6-20
In your second call to textscan() your first argument is fww. What is that? Why are you not using fid like in the first call to textscan()????
  9 个评论
Stephen23
Stephen23 2014-10-10
编辑:Stephen23 2014-10-10
Tested with MATLAB R2012b. I downloaded your data file filename.txt, and ran the following code:
>> fid = fopen('filename.txt');
>> A(1) = textscan(fid,'%4d',7);
>> A(2) = textscan(fid,'%4d',7);
>> fclose(fid);
>> [A{:}]
ans =
-100 -106
-101 107
-102 108
-103 0
-555 0
-104 0
-105 20
This seems to give the outputs you want.
per isakson
per isakson 2015-5-10
编辑:per isakson 2015-5-10
With 2014a
ans =
-100 0
-101 -101
-102 -102
-103 -103
-555 -555
-104 -104
-105 -105
was this ever reported?

请先登录,再进行评论。

类别

Help CenterFile Exchange 中查找有关 Data Import and Export 的更多信息

标签

Community Treasure Hunt

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

Start Hunting!

Translated by