How to create variable with special characters like [ ] { } etc
5 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
I need to create variables having special characters like [ ] { } in workspace. For Example create variable with name variable_name_s[pop]. I am not sure whether it is possible or not in Matlab. Please let me know about this. Thanks.
1 Kommentar
Ashish Uthama
am 12 Jul. 2011
Why would you want to do this? If you have a use-case, people here might be able to give you a better answer.
Akzeptierte Antwort
Jan
am 12 Jul. 2011
It works. The names of variables are stored as C-strings, which can be modifed in a MEX function. But it will have the drawback, that you cannot access the variables anymore: If the interpreter parses the symbol 'name{i}' it uses 'name' as name of the variable and the part in the curly braces as cell index. Therefore the interpreter will not search for a variable called 'name{i}', and in consequence it will not find it. I think CLEAR is a better method to make a variable unaccessible.
This can be used to rename field names of structs freely: FEX: RenameField. Together with dynamic fieldnames they can be accessed, e.g. S.('name[{]}'). But I have never seen a useful application for such dirty tricks.
0 Kommentare
Weitere Antworten (3)
Bjorn Gustavsson
am 12 Jul. 2011
Try to avoid such nonsense asap. Nothing good can come out of that. If you somehow want a [ or another non-"alphanum" character in a variable name you should take a step back and rethink your design. Stick to 0-9 a-z A-Z and _!
See: http://www.mathworks.com/help/techdoc/matlab_prog/f10-60729.html#f10-60768 for more info on variable naming.
Walter Roberson
am 12 Jul. 2011
Perhaps the containers.Map class would be suitable for you; see http://www.mathworks.com/help/techdoc/matlab_prog/brqqo5e-1.html
0 Kommentare
Siehe auch
Kategorien
Mehr zu Characters and Strings 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!