What is the fastest way to load many large files and then reuse that data

74 vues (au cours des 30 derniers jours)
Daniel
Daniel le 20 Août 2020
Commenté : Daniel le 28 Août 2020
I have upwards of 200 .csv files that are around 500 MB each. Each file contains a one line text header and 10 columns of numeric data with many, many rows. I only need to load columns 2-4 once from any one of the files as that information is identical in all files. From all of the files, I need columns 5-8 only. The files are all in one folder with a systematic naming convention if that helps at all. What is the fastest way to do this the first time? I've tried importdata, textscan, and readmatrix and have either not been able to do what I want above or have found it still too slow. Once it's loaded, I'll do some manipulation and save it as a .mat to work on later. Am I right that saving as .mat will produce the fastest load times in the future?
  3 commentaires
Walter Roberson
Walter Roberson le 20 Août 2020
textscan() with %* formats to skip columns is probably about the fastest you are going to get.
Daniel
Daniel le 28 Août 2020
One whole file is 301,409,168 bytes once loaded. I had been loading all the data and plotting some things as a sort of quality check. I don't suppose I'd know how to just load it and save it to a .mat in a piecewise fashion, though that might suffice for what I want.

Connectez-vous pour commenter.

Réponses (1)

Jalaj Gambhir
Jalaj Gambhir le 24 Août 2020
Hi,
Have a look here. You can probably use textscan.
  1 commentaire
Daniel
Daniel le 24 Août 2020
There are several answers in that first link. Which are you suggesting?

Connectez-vous pour commenter.

Catégories

En savoir plus sur Text Data Preparation dans Help Center et File Exchange

Produits


Version

R2020a

Community Treasure Hunt

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

Start Hunting!

Translated by