How to create a variable named from string
20 次查看(过去 30 天)
显示 更早的评论
I'm loading data from an excel file, with multiple objects. I want to create a variable (matrix) named after the object, containing processed data.
So this is basically what I have:
test_data.name(i) = 'Object 2-1'
This is what i want:
Object_2_1 = [3 4 5 etc.];
This means i both needs to replace "space" and "-" with "_" and then name/create the variable. Can someone please help me on how to approach this challenge?
4 个评论
Stephen23
2020-12-3
You can also refer to this page: https://www.mathworks.com/help/matlab/matlab_prog/string-evaluation.html
which states "A frequent use of the eval function is to create sets of variables such as A1, A2, ..., An, but this approach does not use the array processing power of MATLAB and is not recommended. The preferred method is to store related data in a single array."
and also this page, which gives plenty of reaons why this approach to writing code should be avoided:
采纳的回答
Ameer Hamza
2020-12-3
Although possible, it is a terrible (cannot emphasize enough) coding practice to create variable names dynamically: https://www.mathworks.com/matlabcentral/answers/304528-tutorial-why-variables-should-not-be-named-dynamically-eval. Avoid it. Either use struct, tables or arrays. It will make your code much efficient and easy to debug.
For example, you can use the test_data struct to contain names as well as data.
test_data(i).name = 'Object 2-1';
test_data(i).data = [3 4 5 etc.];
7 个评论
更多回答(0 个)
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Entering Commands 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!