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

65 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
Eric Sampson
Eric Sampson on 18 Jan 2013
I always find the cell2struct syntax tricky. I figured that it should be possible, but gave up. Thanks!
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.

Categories

Find more on Structures in Help Center and File Exchange

Products

Community Treasure Hunt

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

Start Hunting!