Best way to rename a loaded variable?
329 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
Alec Nagel
am 27 Nov. 2012
Kommentiert: Steven Lord
am 17 Mär. 2022
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 Kommentare
Jan
am 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.
Akzeptierte Antwort
Matt Fig
am 27 Nov. 2012
Bearbeitet: Matt Fig
am 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 Kommentare
Weitere Antworten (2)
Image Analyst
am 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 Kommentare
Stefano Petrò
am 17 Mär. 2022
A way to do this in a single command is
myNewname = getfield(load(myFile,myVar),myVar);
1 Kommentar
Steven Lord
am 17 Mär. 2022
myVar = 'cdate';
C = load('census.mat', myVar).(myVar)
Siehe auch
Kategorien
Mehr zu Matrix Indexing 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!