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

68 visualizaciones (últimos 30 días)
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(???)

Respuesta aceptada

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

Iniciar sesión para comentar.

Más respuestas (1)

Matt J
Matt J el 18 de En. de 2013
cell2struct(values,names,2)
  2 comentarios
Eric Sampson
Eric Sampson el 18 de En. de 2013
I always find the cell2struct syntax tricky. I figured that it should be possible, but gave up. Thanks!
Jan
Jan el 18 de En. de 2013
It is not documented but even slightly faster, to omit the 3rd input dimension, when values and names are {nx1} cells.

Iniciar sesión para comentar.

Categorías

Más información sobre Structures en Help Center y File Exchange.

Productos

Community Treasure Hunt

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

Start Hunting!

Translated by