Best way to rename a loaded variable?
Mostrar comentarios más antiguos
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 comentarios
Jan
el 27 de Nov. de 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.
Alec Nagel
el 27 de Nov. de 2012
Respuesta aceptada
Más respuestas (2)
Image Analyst
el 18 de Feb. de 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.
Stefano Petrò
el 17 de Mzo. de 2022
0 votos
A way to do this in a single command is
myNewname = getfield(load(myFile,myVar),myVar);
1 comentario
myVar = 'cdate';
C = load('census.mat', myVar).(myVar)
Categorías
Más información sobre Scope Variables and Generate Names en Centro de ayuda y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!