Can I extract data from file without importing?

1 次查看(过去 30 天)
Hey There!
I believe this is a simple answer, but I just cannot find it online anywhere.
I have a series of .dat files that I am utilizing that are substantial in size, of the order of about 800,000 numbers in a single column format.
What I need to do is consider the first .dat file in the series, extract three specific values within the single column, discard it and then move on to the next .dat file in the series, do the same, and so on...
I have no problem doing this using the importdata(blah blah.dat) method, however each time I do this I import the entire data set to my workspace (I have 600 .dat files in the series) and so it takes forever.
My questions is, can I simply "cherry pick" the three specific data points from the single column without importing the entire data set within the .dat file??
Or any comments as to how to reduce time while mass importing would be great.
Thanks in advance
-Kyle
  2 个评论
per isakson
per isakson 2013-5-8
How many times in total will you need to access each specific dat-file?
kschau
kschau 2013-5-9
Just once in general. I have 600 dat files per case and about 30 different cases to consider so I'm trying to avoid converting everything to binary.

请先登录,再进行评论。

采纳的回答

Image Analyst
Image Analyst 2013-5-9
You can use fgetl() and then quit reading the file once you recognize that you have the 3 numbers that you need.
  2 个评论
kschau
kschau 2013-5-9
I have tried this but the length of each .dat file is so long (700,000 ish data points) that going line by line takes just as long. And the nature of the data is that one value will always be in the last 1/3 of the set. Thanks though.
Image Analyst
Image Analyst 2013-5-9
You can use fseek to home in on the likely starting position. That will speed it up.

请先登录,再进行评论。

更多回答(0 个)

类别

Help CenterFile Exchange 中查找有关 Programming 的更多信息

Community Treasure Hunt

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

Start Hunting!

Translated by