How to change a variable name without changing the value itself?
Ältere Kommentare anzeigen
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
Weitere Antworten (4)
Star Strider
am 10 Jun. 2023
2 Stimmen
chicken vector
am 10 Jun. 2023
1 Stimme
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 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.
Antonio Victoria
am 13 Jun. 2023
0 Stimmen
Kategorien
Mehr zu Write C Functions Callable from MATLAB (MEX Files) finden Sie in Hilfe-Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!
