How to Access to Fields of a Non-scalar Struct?
1 次查看(过去 30 天)
显示 更早的评论
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!