Naming a struct with a variable?

조회 수: 53 (최근 30일)
Saar Peles
Saar Peles 2020년 3월 18일
편집: Voss 2024년 10월 30일
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
Adam Danz
Adam Danz 2020년 3월 18일
편집: Adam Danz 2020년 3월 18일
"...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).

댓글을 달려면 로그인하십시오.

채택된 답변

Steven Lord
Steven Lord 2020년 3월 18일
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
Saar Peles
Saar Peles 2020년 3월 18일
편집: Voss 2024년 10월 30일
Holy [redacted], I think you've saved me. I appreciate the help!

댓글을 달려면 로그인하십시오.

추가 답변 (0개)

카테고리

Help CenterFile Exchange에서 Structures에 대해 자세히 알아보기

태그

제품


릴리스

R2019a

Community Treasure Hunt

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

Start Hunting!

Translated by