how to get values from a struct

18 Ansichten (letzte 30 Tage)
Li Xue
Li Xue am 14 Jul. 2017
Bearbeitet: Li Xue am 15 Jul. 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.

Akzeptierte Antwort

Stephen23
Stephen23 am 15 Jul. 2017
Bearbeitet: Stephen23 am 15 Jul. 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{:}, {':'})

Weitere Antworten (1)

Image Analyst
Image Analyst am 14 Jul. 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

Kategorien

Mehr zu Structures finden Sie in Help Center und File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by