Naming a struct with a variable?

56 visualizzazioni (ultimi 30 giorni)
Saar Peles
Saar Peles il 18 Mar 2020
Modificato: Voss il 30 Ott 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 Commento
Adam Danz
Adam Danz il 18 Mar 2020
Modificato: Adam Danz il 18 Mar 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).

Accedi per commentare.

Risposta accettata

Steven Lord
Steven Lord il 18 Mar 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 Commento
Saar Peles
Saar Peles il 18 Mar 2020
Modificato: Voss il 30 Ott 2024
Holy [redacted], I think you've saved me. I appreciate the help!

Accedi per commentare.

Più risposte (0)

Categorie

Scopri di più su Structures in Help Center e File Exchange

Tag

Prodotti


Release

R2019a

Community Treasure Hunt

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

Start Hunting!

Translated by