How to Access to Fields of a Non-scalar Struct?
2 ビュー (過去 30 日間)
古いコメントを表示
Rightia Rollmann
2017 年 3 月 12 日
コメント済み: Walter Roberson
2017 年 3 月 12 日
How can I create the 4-by-1 cell array D from the struct A?
A(1).B.C = 'a';
A(2).B.C = 'b';
A(3).B.C = 'c';
A(4).B.C = 'd';
D =
'a'
'b'
'c'
'd'
0 件のコメント
採用された回答
Walter Roberson
2017 年 3 月 12 日
D = arrayfun(@(IDX) A(IDX).B.C, (1:numel(A)).', 'Uniform', 0);
This is the safest approach, as it will work for the case where there are fields in addition to B within A, where some other approaches would not.
But in the specialized case where B is the only field inside A, then
temp = cell2mat(struct2cell(A));
D = {temp.C}.';
2 件のコメント
Walter Roberson
2017 年 3 月 12 日
.' is plain transpose. ' is conjugate transpose.
For arrays that are not numeric arrays, they come out the same, but I prefer to write .' to remove any ambiguity about whether I intend the transpose to be conjugate or not.
その他の回答 (0 件)
参考
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!