Borrar filtros
Borrar filtros

how to get values from a struct

28 visualizaciones (últimos 30 días)
Li Xue
Li Xue el 14 de Jul. de 2017
Editada: Li Xue el 15 de Jul. de 2017
How to get values from a struct for a list of keys?
For example, I have a struct:
my_key={'key1', 'key2', 'key3'};
value = {[1 2], [3 4], [5 6]};
s=cell2struct(value,my_key,2);
How can I extract values for query={'key1','key3'}?
s.(query) does not work. I am trying to avoid loops.

Respuesta aceptada

Stephen23
Stephen23 el 15 de Jul. de 2017
Editada: Stephen23 el 15 de Jul. de 2017
"How can I extract values for query={'key1','key3'}?"
cellfun(@(f)s.(f), query, 'uni',0)
or using getfield, something like:
getfield(s,{':'}, query{:}, {':'})

Más respuestas (1)

Image Analyst
Image Analyst el 14 de Jul. de 2017
Try this:
my_key={'key1', 'key2', 'key3'}
value = {[1 2], [3 4], [5 6]}
s=struct(my_key{1}, value{1}, my_key{2}, value{2}, my_key{3}, value{3})
% Look to see if key2 is [3, 4]
if isequal(s.key2, [3,4])
msgbox('It is');
else
msgbox('It is not');
end

Categorías

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

Etiquetas

Community Treasure Hunt

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

Start Hunting!

Translated by