How does MATLAB run load, importdata, matfile functions
3 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
Shih-Hsuan Yuan
am 25 Jan. 2017
Kommentiert: Shih-Hsuan Yuan
am 25 Jan. 2017
Hi,
I am wondering if anyone knows the actual process MATLAB run function load and matfile. I have a .mat file with a single variable that consists of a column of cells.
I try loading with both function
load(full_path)
and
temp_file = matfile(full_path);
data = temp_file.data;
I am using MATLAB R2015a and on my machine, the second method with matfile usually out performs the first one (load faster). It seems weird to me. I try opening both function and look at their code, but unfortunately they are built-in functions. I am wondering if anyone knows what is the reason behind this. Thanks
0 Kommentare
Akzeptierte Antwort
Jan
am 25 Jan. 2017
Depending on the format of the MAT file (see e.g. Level-5-mat-format, mat-file-versions) different methods are applied to import the file. E.g. the HDF5 format of 7.3 MAT-files can be accessed by other tools also and not only by built-in functions.
Your 2nd approach, which catches the output in a variable migth be faster, because the dynamic create of variables by load without output argument impedes the efficient processing.
1 Kommentar
Weitere Antworten (1)
Steven Lord
am 25 Jan. 2017
How many variables are in your MAT-file? How large and/or complicated are the variables NOT named data? Your first code that calls load cares about the answers to those two questions, because it needs to load ALL those variables into the workspace. I'm not certain how much (or if) the second code cares what else is in the MAT-file.
If you wanted a more apples-to-apples comparison, call load and indicate you want to read just the variable named data into memory using the variables input argument.
Siehe auch
Kategorien
Mehr zu Workspace Variables and MAT Files finden Sie in Help Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!