Naming a struct with a variable?

56 visualizaciones (últimos 30 días)
Saar Peles
Saar Peles el 18 de Mzo. de 2020
Editada: Voss el 30 de Oct. de 2024
Hi, I'm trying to sort some data into a struct by having a specific part of the struct name be variable. I have a mapping function that designates the name based on the index. This is a simplified version of what I'm trying to code:
AHAmap = [ 6 9 2 17]
S10.AHAmap(3) = 66;
My expectation being that the struct S10.2 equals 66 (or even better S10.AHA3 = 66. I've been stuck for a while so help is appreciated!
  1 comentario
Adam Danz
Adam Danz el 18 de Mzo. de 2020
Editada: Adam Danz el 18 de Mzo. de 2020
"...by having a specific part of the struct name be variable"
Are you looking for a way to name the variable S10 dynamically?
This is not recommended. Avoid using dynamic variable names to name a structure at all cost. Here are reasons why.
If you're naming the fields, that's a different story (see Steven Lord's answer).

Iniciar sesión para comentar.

Respuesta aceptada

Steven Lord
Steven Lord el 18 de Mzo. de 2020
2 isn't a valid struct array field name. But you can do something like your second alternative using dynamic field names.
S = struct();
FN = "apple" + 2 + "c"
S.(FN) = 42 % equivalent to S.apple2c = 42
Search the documentation for "dynamic field names" for more information.
  1 comentario
Saar Peles
Saar Peles el 18 de Mzo. de 2020
Editada: Voss el 30 de Oct. de 2024
Holy [redacted], I think you've saved me. I appreciate the help!

Iniciar sesión para comentar.

Más respuestas (0)

Categorías

Más información sobre Structures en Help Center y File Exchange.

Etiquetas

Productos


Versión

R2019a

Community Treasure Hunt

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

Start Hunting!

Translated by