I've got a multidimensional .mat file with a bunch of m x n arrays where each one is called something different, for example f1, f2, etc. I want to open the .mat file up and analyze each file automatically. How do I do that?
+4
A:
If you know for certain that all the variables in the .mat file are M-by-N arrays to be processed, then this should work:
data = load('your_file.mat'); %# Load .mat file data into a structure
for name = fieldnames(data).' %'# Loop over the field names of the structure
mat = data.(name{1}); %# Get one structure field (i.e. matrix)
%# Process matrix here
end
The above uses the functions LOAD and FIELDNAMES, and accesses structure fields using dynamic field names.
gnovice
2010-06-07 15:08:47
Holy crap, I didn't know about MATLAB's dynamic field references. +1
Doresoom
2010-06-07 15:17:00
+1 also as a note, one can get the variable names inside a MAT-file using `who -file file.mat`
Amro
2010-06-07 16:51:17