Change variable name based on what loop it is on
Show older comments
I have a user input a vector for the variable titled 'k1'. A loop is set up where the input conditions are the same, but the variable name must be changed in order to perform some operations and store the data. I would like it to change based on which loop it is performing, like k1 might be given the name k2 on the second loop. I don't know how I could do this simply or if doing this is possible.
1 Comment
"I don't know how I could do this simply or if doing this is possible."
It is possible, but is best avoided:
The neat, simple, robust, reliable, efficient alternative is to use indexing. You should use indexing.
Accepted Answer
More Answers (2)
Walter Roberson
on 14 Apr 2025
Edited: Walter Roberson
on 14 Apr 2025
0 votes
It is possible to do this.
It is not possible to do this simply.
We firmly recommend that you do not do this.
dpb
on 14 Apr 2025
0 votes
While it can be done, it almost never should be the way..."there be dragons!" and slow, obfuscated and very difficult to debug code. See <Do not use globals or eval>. The direct link is to @Matt Fig's answer, but the overall discussion/thread is informative and valuable. The offcial Mathworks documentation link <Alternaives to the eval Function> discusses exactly the thing you mention as its first use case...
Categories
Find more on Loops and Conditional Statements in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!