faster way to read formatted ascii

I have to read a large number of formatted text ascii files which are composed by 260 lines by 3662 columns by exploiting i/o level fgetl/fscanf. The 1th lines is the header, successive lines contain data. The columns 1:14 are time of measurements and other instrument specifications, while columns [15:3662,259] can be uploaded as a matrix.
I tryed by using fgetl() + strsplit(), but it seems to me that the output from strsplit is a cell array and it takes a lot of time to convert the huge numerical matrix into a double array.
What is the most efficient (in terms of time of reading) way to read these files?
thank you in advance

2 Kommentare

Star Strider
Star Strider am 25 Mär. 2015
Experiment with the textscan function. It may do what you want.
Stephen23
Stephen23 am 25 Mär. 2015
Bearbeitet: Stephen23 am 25 Mär. 2015
Use textscan instead: any possible small time saving is going to be many times smaller than the time you will spend trying to get an fgetl solution working properly.

Melden Sie sich an, um zu kommentieren.

Antworten (1)

Titus Edelhofer
Titus Edelhofer am 25 Mär. 2015

0 Stimmen

Hi,
as an alternative to textscan, you can continue using the importer as you do but instead of hitting the import data click on the triangle to get to the menu below that offers "Generate function". This should do most of the work for you and you can use the generated function to read your files in a loop ...
Titus

Gefragt:

am 25 Mär. 2015

Beantwortet:

am 25 Mär. 2015

Community Treasure Hunt

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

Start Hunting!

Translated by