Question

I have a big .mat file that I want to process, but it is too big to fit in a single load. I thought to load it in parts, each time to access just the important parameters. So I have practically two questions:

  1. How can I access the variables names of the mat file without loading it?
  2. How can I load only one of them to the workspace?

Thanks!

Was it helpful?

Solution

you can see the list of variables using:

vars = whos('-file','name.mat');

and then just load the variable you want, say the first one on the list, by:

load('name.mat', vars(1).name)

OTHER TIPS

As well as loading individual variables from the .mat file as suggested by @natan, in recent versions of MATLAB you can use a matfile object to load in only parts of an individual variable.

So for example, you can say:

myFile = matfile('path\to\the\mat\file');
loadedData = myfile.myVarName(100:200, 500:600);

and you will load in only a portion of the variable myVarName from the file myFile.


Edit:

The matfile object also has methods size, who and whos, so that you can determine the names and sizes of the variables that the file contains before you attempt to load bits in.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top