Importing data from a large data set

1 visualizzazione (ultimi 30 giorni)
hal9k
hal9k il 31 Mar 2020
Commentato: Ameer Hamza il 1 Apr 2020
I have a ~30 GB worth of data in a .mat file. The .mat file has m*n (m = ~10^9, n = 10).
I need to run a simulation that derives its value from randomly selected row (from a choice of row 1:m).
The column (1:n) has the simulation parameters.
What is the best way (memory and speed) to do it? Is it possible to do it without loading/importing the entire .mat file in Workspace?

Risposta accettata

Ameer Hamza
Ameer Hamza il 31 Mar 2020
Yes, you can read data from a mat file without loading it completely. See matfile()https://www.mathworks.com/help/matlab/ref/matlab.io.matfile.html
  2 Commenti
hal9k
hal9k il 1 Apr 2020
Here is what worked for me.
tic
importData = matfile(filename);
data_info = whos('-file',filename);
row = data_info.size(1);
rand_row= randi([1 row],1);
output = importData.filename(rand_row,:)
toc
Elapsed time = 0.02 sec.
This is great.
Ameer Hamza
Ameer Hamza il 1 Apr 2020
Glad to be of Help.

Accedi per commentare.

Più risposte (0)

Categorie

Scopri di più su Data Import and Analysis in Help Center e File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by