How to identify variables in workspace from strings in cell arrays and then make changes to the variables themselves?
2 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
sangeet pillai
am 24 Feb. 2017
Kommentiert: sangeet pillai
am 2 Mär. 2017
Hi all,
I have a cell array containing strings say for eg {'var1','var2','var3',....'varn'} . Now i have values of all these variables in my workspace.So what i want to do is , first to get values of these variables from workspace.Then i want to compare the lengths of these variables.If their lengths are not equal,i want to make them equal using interpolation.I am so very confused that i cant decide how to go ahead on this.Maybe i need to use regexp,whos,..but i dont know how to use them here.
1 Kommentar
Stephen23
am 24 Feb. 2017
Bearbeitet: Stephen23
am 24 Feb. 2017
@sangeet pillai: accessing variable names dynamically will make your code slow, buggy, obfuscated, and hard to debug. There are much better alternatives. Read these to know why this is a bad idea, and what the better alternatives are:
or any of the hundreds of other times that dynamically named variables has been discussed on this forum.
Akzeptierte Antwort
Adam
am 24 Feb. 2017
Bearbeitet: Adam
am 24 Feb. 2017
The reason you are confused is because naming variables in this way is really not the way to solve anything. I don't know how you got the variables in the first place, maybe you individually named them all, but this is the type of problem you come to when you do that. Naming them this way in the first place is usually where people come unstuck, but even if they succeed in doing so accessing them afterwards is a real pain.
Use a struct with dynamic field names if you really want numbered items or even better just use an array - it is what they are for!
17 Kommentare
Weitere Antworten (0)
Siehe auch
Kategorien
Mehr zu Workspace Variables and MAT 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!