I have an n-value structure array with multiple fields, and want to extract a specific field (all values thereof are (1x4) single arrays) into a nx4 array.
MyMatrix = [MyStruct(:).FieldC];
concatenates the values of the field, giving me a 1x(n*4) array. There's probably a way to reshape that, but I would appreicate a more direct solution as I'm doing this in the command window on an as-needed basis, rather than via a script.

 채택된 답변

James Tursa
James Tursa 2021년 6월 9일

14 개 추천

Does this do what you want?
MyMatrix = vertcat(MyStruct.Field);

댓글 수: 3

Gabriel Stanley
Gabriel Stanley 2021년 6월 9일
It does indeed. Thanks!
Babak
Babak 2023년 6월 16일
This does not work if the field is 2 or more structure layers down from the indexing. e.g. d.field1.field2 where d is a structure array, e.g. d(1).field1.field2

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

추가 답변 (1개)

David Hill
David Hill 2021년 6월 9일

3 개 추천

MyMatrix=cell2mat(struct2cell(MyStruct));

댓글 수: 2

Gabriel Stanley
Gabriel Stanley 2021년 6월 9일
Editing my original post to the following effect: there are multiple field in the structure array, and I'm only looking to extract 1 of them to an array.
Matt Weber
Matt Weber 2022년 10월 11일
David Hill's solution worked for me, the other one did not. My context was a struct with just one field level.

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

카테고리

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

제품

릴리스

R2019b

질문:

2021년 6월 9일

편집:

2023년 6월 17일

Community Treasure Hunt

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

Start Hunting!

Translated by