MATLAB: How to load a single variable from a structure

fieldMATLAB

How can I load only one member of a structure contained with other variables in a MAT file, without loading any other members of the structure?

Best Answer

If you have many variables in a MAT file, among which the structure of interest is also contained, there is no way to load only a single member of this structure into the workspace. For example, consider the following contents in the MAT file "sample.mat":
var1
var2
var3
structureVar
where "structureVar" contains the following:
sVar1
sVar2
Say we would like to load only "sVar1" into our workspace from "sample.mat". Currently, there is no way to do this. This is described in the "Limitations" section of the "matfile" documentation.
A workaround is to save the structure as an independent MAT file, and load members of the structure as needed. This is documented in "Variables" section of the "save" documentation:
For example, save "structureVar" as "structureVarMatFile.mat" when it is in the workspace using the following command:
>> save('structureVarMatFile','-struct','structureVar');
Now, you can load only "sVar1" if needed, using the following command:
>> load('structureVarMatFile','sVar1');