Effacer les filtres
Effacer les filtres

how to get values from a struct

28 vues (au cours des 30 derniers jours)
Li Xue
Li Xue le 14 Juil 2017
Modifié(e) : Li Xue le 15 Juil 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.

Réponse acceptée

Stephen23
Stephen23 le 15 Juil 2017
Modifié(e) : Stephen23 le 15 Juil 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{:}, {':'})

Plus de réponses (1)

Image Analyst
Image Analyst le 14 Juil 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

Catégories

En savoir plus sur Structures dans Help Center et File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by