Access automatically substructures from loop

Good morning everybody, I hope everything is good for you,
I am working with large structures and I want to automatize some tasks. If we take the structure that I attached to this message, how do I select the nth matrix of the structure ? Without writing "Example.hello" ?
I would like to do the same as when we take the value of a matrix in the nth position ( matrix(n)).
Have a nice day

댓글 수: 1

Stephen23
Stephen23 2020년 3월 24일
편집: Stephen23 2020년 3월 24일
Note that field order is NOT fixed and can change. Code that assumes that fields are in a particular order will be fragile.
As Steven Lord wrote, most likely you would be much better off using dynamic fieldnames:

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

 채택된 답변

Steven Lord
Steven Lord 2020년 3월 24일

0 개 추천

Rather than depending on the order in which the fields of the struct array are displayed (which can change -- in the following example s and snew contain the same data just in a different order)
s = struct('b',2,'c',3,'a',1)
snew = orderfields(s)
I would use dynamic field names, potentially in conjunction with the fieldnames function, or maybe (if you want to iterate through all the fields of the struct) structfun.
fn = 'b';
b1 = s.(fn)
b2 = snew.(fn)
sSquared = structfun(@(x) x.^2, s)

댓글 수: 1

V.D-C
V.D-C 2020년 3월 26일
Thank you for your answer, I will continue in this new direction !

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

추가 답변 (0개)

카테고리

도움말 센터File Exchange에서 Loops and Conditional Statements에 대해 자세히 알아보기

질문:

2020년 3월 24일

댓글:

2020년 3월 26일

Community Treasure Hunt

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

Start Hunting!

Translated by