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
Stephen23
Stephen23 2023 年 6 月 17 日
編集済み: Stephen23 2023 年 6 月 17 日

サインインしてコメントする。

その他の回答 (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 ExchangeStructures についてさらに検索

製品

リリース

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