Cell Array to Structures

10 visualizaciones (últimos 30 días)
Dan Lynn
Dan Lynn el 18 de Oct. de 2015
Comentada: Walter Roberson el 19 de Oct. de 2015
Is there a way to take a 1xM cell array and transform that into a structure array without using the function struct()?
The cell array will always be formatted this way: CellArr = {<field1 name>, {cell array of field 1 contents}, <field2 name, {cell array of field 2 contents}, etc...}

Respuesta aceptada

Walter Roberson
Walter Roberson el 18 de Oct. de 2015
Note: this will use struct() internally.
  2 comentarios
Dan Lynn
Dan Lynn el 18 de Oct. de 2015
Is there a way to do this without using cell2struct? I managed to separate my field names and contents, so how can I do this with loops?
Walter Roberson
Walter Roberson el 19 de Oct. de 2015
You could use dynamic field assignment.
YourStruct = [];
for K = 1 : 2: length(CellArr)
YourStruct.(CellArr{K}) = CellArr{K+1};
end
It would be stylistically better to initialize
YourStruct = struct();
but you said you wanted to not use struct().
By the way, are you aware that you can do the whole thing by using
YourStruct = struct(CellArr{:});
? Though you would have to watch out for cases where the contents included cell arrays as struct() would tend to create a structure array for those cases instead of a single struct.

Iniciar sesión para comentar.

Más respuestas (0)

Categorías

Más información sobre Structures 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!

Translated by