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일

1 개 추천

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개)

카테고리

도움말 센터File Exchange에서 Structures에 대해 자세히 알아보기

제품

릴리스

R2019a

태그

질문:

2020년 3월 18일

편집:

2024년 10월 30일

Community Treasure Hunt

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

Start Hunting!

Translated by