dynamic naming of structures

조회 수: 4 (최근 30일)
DrK
DrK 2022년 5월 16일
댓글: DrK 2022년 5월 17일
If I have a variable x='name', how can I use x to build a structure with name 'name' that looks like:
name.a
name.b
No need to tell me about the hazards of dynamic variable naming.
Thanks.

채택된 답변

DrK
DrK 2022년 5월 17일
Actually, found my own answer:
x = 'name';
eval(sprintf('%s = struct;',x));
This creates a structure named 'name' and one can use the same eval format to add fields to it later.
  댓글 수: 7
DrK
DrK 2022년 5월 17일
Thanks for the light reading. I think I am going to take this in the direction of indexing instead.
Thanks again for your help.

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

추가 답변 (2개)

James Tursa
James Tursa 2022년 5월 16일
Would it be acceptable to use x as a dynamic fieldname instead of the top level variable name? E.g.,
v.(x).a
v.(x).b

DrK
DrK 2022년 5월 17일
Not really. I know about the paranthesis around field names, but it creates another level of structure. The problem is that if I am creating the structure names inside my program, I don't know how to create the structures using those names.
Thanks for your response.

카테고리

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

제품


릴리스

R2021a

Community Treasure Hunt

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

Start Hunting!

Translated by