Create a series of variables with names that include numbers
Afficher commentaires plus anciens
I need to create some fake data for testing a program. The fake data is a series of variables with names like VAR004300, VAR004400, VAR004500, etc. Each variable will be a 1x1 struct with 5 fields (same 5 fields for all variables). What is the smart way to create these variables? I would like to avoid typing out the field names the same way dozens of times. The dumb way:
VAR004300 = struct('FIELD1', value431, 'FIELD2', value432, ...);
VAR004400 = struct('FIELD1', value441, 'FIELD2', value442, ...)
3 commentaires
Stephen23
le 28 Avr 2023
"What is the smart way to create these variables?"
The smart way is to not dynamically name variables:
Rich006
le 28 Avr 2023
"I was looking for an efficient way to create them all without having to type them all in."
Sure, that was perfectly clear from your question. And as everyone here was explaining, there is no "efficient way" to do that. Not only that, forcing meta-data into variable names makes processing data much harder, slower, and buggier, so the whole approach should be avoided anyway. Which is exactly what the links you were given explain.
The simpler, easier, and much more efficient approach is to use one array. Exactly what kind of array is best depends on the specific situation.
If you really are interested in "efficient" ways of storing and working with data, then understand that meta-data is data, and that data should be stored in variables (not in variable names or fieldnames). Then you can really start to write neat, robust, efficient, generalizable code:
Réponse acceptée
Plus de réponses (1)
Image Analyst
le 28 Avr 2023
0 votes
Catégories
En savoir plus sur Variables dans Centre d'aide et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!