Best way to rename a loaded variable?
189 views (last 30 days)
Show older comments
Say that I have a .mat file that contains a variable, and I need to load this variable and give it a different name. Is there any other (/better) way to do this than:
load(myFile, myVar)
eval(['myNewname = ' myVar '; clear ' myVar])
?
2 Comments
Jan
on 27 Nov 2012
Where does this EVAL idea come from? Did you find EVAL in the documentation or did you see it in an example?
I ask, because it is such frequently suggested to avoid EVAL in this and other Matlab forums for so many years, that I actually expect, that this method should be extinct already.
Accepted Answer
Matt Fig
on 27 Nov 2012
Edited: Matt Fig
on 27 Nov 2012
Say you have the name of your variable:
VAR = 'S';
Now you want to load that variable, but with the name T. This method follows the general rule of thumb to avoid 'poofing' variables into the workspace.
T = load('myfile',VAR); % Function output form of LOAD
T = T.(VAR)
3 Comments
More Answers (2)
Image Analyst
on 18 Feb 2015
I'd do it this way:
storedStructure = load(myFile, 'myVar'); % Load in ONLY the myVar variable.
myNewname = storedStructure.myVar; % Assign it to a new variable with different name.
clear('storedStructure'); % If it's really not needed any longer.
Same net effect, it just uses the names Alec gave, and avoids dynamic structure fields, which are a bit advanced for beginners and not necessary here if you know the actual name.
0 Comments
Stefano Petrò
on 17 Mar 2022
A way to do this in a single command is
myNewname = getfield(load(myFile,myVar),myVar);
1 Comment
Steven Lord
on 17 Mar 2022
myVar = 'cdate';
C = load('census.mat', myVar).(myVar)
See Also
Categories
Find more on Low-Level File I/O in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!