Converting Struct field to array
1.632 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos
Gabriel Stanley
el 9 de Jun. de 2021
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.
0 comentarios
Respuesta aceptada
James Tursa
el 9 de Jun. de 2021
Does this do what you want?
MyMatrix = vertcat(MyStruct.Field);
3 comentarios
Babak
el 16 de Jun. de 2023
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
Más respuestas (1)
David Hill
el 9 de Jun. de 2021
MyMatrix=cell2mat(struct2cell(MyStruct));
2 comentarios
Matt Weber
el 11 de Oct. de 2022
David Hill's solution worked for me, the other one did not. My context was a struct with just one field level.
Ver también
Categorías
Más información sobre Data Type Conversion 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!