How to create a struct from a cell array of fieldnames and a cell array of values?

114 views (last 30 days)
How can you take a cell array array of fieldnames and a cell array of values, and convert them into a structure without looping?
names = {'f1', 'f2'};
values = {1 2};
structure = struct(???)

Accepted Answer

Matt J
Matt J on 18 Jan 2013
Edited: Matt J on 18 Jan 2013
args=[names;values];
structure = struct(args{:})
  1 Comment
Eric Sampson
Eric Sampson on 18 Jan 2013
Brilliant! I couldn't figure out how to make the fieldnames and values alternate, but your solution is the key :) Thanks Matt!

Sign in to comment.

More Answers (1)

Matt J
Matt J on 18 Jan 2013
cell2struct(values,names,2)
  2 Comments
Jan
Jan on 18 Jan 2013
It is not documented but even slightly faster, to omit the 3rd input dimension, when values and names are {nx1} cells.

Sign in to comment.

Community Treasure Hunt

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

Start Hunting!