Effacer les filtres
Effacer les filtres

How to create a variable named from string

20 vues (au cours des 30 derniers jours)
Kasper Buchardt
Kasper Buchardt le 3 Déc 2020
Commenté : Ameer Hamza le 3 Déc 2020
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 commentaires
Stephen23
Stephen23 le 3 Déc 2020
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:
Kasper Buchardt
Kasper Buchardt le 3 Déc 2020
Thank you both very much, both @Deepak for providing a possible answer to my question and to @Stephen for guidance towards another solution which is more correct.

Connectez-vous pour commenter.

Réponse acceptée

Ameer Hamza
Ameer Hamza le 3 Déc 2020
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 commentaires
Kasper Buchardt
Kasper Buchardt le 3 Déc 2020
That sounds very interresting and is definitly something i will look into and experiment with.
Thank you yet again.
Ameer Hamza
Ameer Hamza le 3 Déc 2020
I am glad to be of help! :)

Connectez-vous pour commenter.

Plus de réponses (0)

Catégories

En savoir plus sur Entering Commands dans Help Center et File Exchange

Produits


Version

R2020a

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by