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

0 Stimmen

"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

0 Stimmen

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

Gefragt:

am 14 Jul. 2017

Bearbeitet:

am 15 Jul. 2017

Community Treasure Hunt

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

Start Hunting!

Translated by