How to Access to Fields of a Non-scalar Struct?
1 visualización (últimos 30 días)
Mostrar comentarios más antiguos
Rightia Rollmann
el 12 de Mzo. de 2017
Comentada: Walter Roberson
el 12 de Mzo. de 2017
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 comentarios
Respuesta aceptada
Walter Roberson
el 12 de Mzo. de 2017
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 comentarios
Walter Roberson
el 12 de Mzo. de 2017
.' 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.
Más respuestas (0)
Ver también
Categorías
Más información sobre Data Types en Help Center y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!