Importing data from a large data set

2 visualizaciones (últimos 30 días)
hal9k
hal9k el 31 de Mzo. de 2020
Comentada: Ameer Hamza el 1 de Abr. de 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?

Respuesta aceptada

Ameer Hamza
Ameer Hamza el 31 de Mzo. de 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 comentarios
hal9k
hal9k el 1 de Abr. de 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 el 1 de Abr. de 2020
Glad to be of Help.

Iniciar sesión para comentar.

Más respuestas (0)

Categorías

Más información sobre Data Import and Analysis en Help Center y File Exchange.

Community Treasure Hunt

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

Start Hunting!

Translated by