Cell Array to Structures

9 visualizzazioni (ultimi 30 giorni)
Dan Lynn
Dan Lynn il 18 Ott 2015
Commentato: Walter Roberson il 19 Ott 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...}

Risposta accettata

Walter Roberson
Walter Roberson il 18 Ott 2015
Note: this will use struct() internally.
  2 Commenti
Dan Lynn
Dan Lynn il 18 Ott 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 il 19 Ott 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.

Accedi per commentare.

Più risposte (0)

Categorie

Scopri di più su Structures in Help Center e File Exchange

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by