How to change a variable name without changing the value itself?
    33 Ansichten (letzte 30 Tage)
  
       Ältere Kommentare anzeigen
    
    Antonio Victoria
 am 10 Jun. 2023
  
    
    
    
    
    Beantwortet: Antonio Victoria
 am 13 Jun. 2023
            I've got some variables like these: OutArray, OutArray2 and so on...
I need to refresh the base name OutArray adding the "1", "2", "3"... taking advantage of the loop iterator, how may I do it?
I have MATLAB R2023A
Akzeptierte Antwort
  Image Analyst
      
      
 am 10 Jun. 2023
        
      Bearbeitet: Image Analyst
      
      
 am 10 Jun. 2023
  
      Just do them one at a time, reassiging existing variables to variables with your new, preferred names.  Then you can clear the old-named variables from memory with clear if you want.
newname1 = OutArray;
newName2 = OutArray2;
newName3 = OutArray3;
newName4 = OutArray4;
clear('OutArray', 'OutArray2', 'OutArray3', 'OutArray4');
Surely you don't have more than a handful of those variables.  If you do (big mistake), then see this
for reasons why not to do that.
If you have tons of variable names because they are columns of a big table you read in from a file, then consider converting them all to a 2-D array with the table2array function.

0 Kommentare
Weitere Antworten (4)
  chicken vector
      
 am 10 Jun. 2023
        This is in general not recommend because is prone tu bugs and affects code readibility.
0 Kommentare
  claudio
      
 am 10 Jun. 2023
        
      Bearbeitet: claudio
      
 am 10 Jun. 2023
  
       The easy way
variables = ["OutArray" "OutArray2" "OutArray3"];
for kk = 1:numel(variables)
    eval(variables(kk) + string(kk) + " = eval(variables(kk))");
    clear(variables(kk))
end
A more refined way
variables = string(who);    % retrieve the name of the variables from workspace 
                            % without having to write them by hand
for kk = 1:numel(variables)
    eval(variables(kk) + string(kk) + " = eval(variables(kk))");
    clear(variables(kk))
end
1 Kommentar
  John D'Errico
      
      
 am 10 Jun. 2023
				
      Bearbeitet: John D'Errico
      
      
 am 10 Jun. 2023
  
			Neither of those ways is at all refined. And neither of them are a remotely good idea. They will lead to crappy, buggy, and SLOW code, when a simple array was all that was ever needed. Is there even a remotely good reason to recommend this? NO.
Siehe auch
Kategorien
				Mehr zu Write C Functions Callable from MATLAB (MEX 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!






