How to change a variable name without changing the value itself?
Mostra commenti meno recenti
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
Risposta accettata
Più risposte (4)
Star Strider
il 10 Giu 2023
2 voti
chicken vector
il 10 Giu 2023
1 voto
This is in general not recommend because is prone tu bugs and affects code readibility.
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 Commento
John D'Errico
il 10 Giu 2023
Modificato: John D'Errico
il 10 Giu 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.
Antonio Victoria
il 13 Giu 2023
0 voti
Categorie
Scopri di più su Write C Functions Callable from MATLAB (MEX Files) in Centro assistenza e File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!
