Azzera filtri
Azzera filtri

Retrieving data from structures

2 visualizzazioni (ultimi 30 giorni)
Ashlee
Ashlee il 26 Ott 2012
I am working on a function for the periodic table that when I input a property and group number, the output is the requested property of the atom belonging to the requested group number. I have already created a structure for the first 18 elements that I know works. It holds the properties: atomic number, group, period, and symbol.
If I have: function periodictable(property,groupnumber), how would I be able to extract the data...if that makes sense.
Example:
>> periodictable('symbol',2) ans = 'Be' 'Mg'
>> periodictable('atomicnumber',1) ans = [1] [3] [11]
  4 Commenti
Matt J
Matt J il 26 Ott 2012
See my solution below, then.
Ashlee
Ashlee il 26 Ott 2012
you sir, are my hero.

Accedi per commentare.

Risposta accettata

Matt J
Matt J il 26 Ott 2012
Modificato: Matt J il 26 Ott 2012
I'm assuming you have a structure array, yourstruct, and that yourstruct(i) corresponds to the i-th element.
idx=[yourstruct.group]==number_to_search;
out = {yourstruct(idx).(property)};

Più risposte (1)

Ryan G
Ryan G il 26 Ott 2012
Modificato: Ryan G il 26 Ott 2012
Assuming your structure is like:
periodicTable.Helium periodicTable.Carbon etc...
names = fieldnames(myTable);
inGrp = cellfun(@(x) periodicTable.(x).group==groupnumber,names);
grpNames = names(inGrp);
output = cellfun(@(y) periodicTable.(y).('symbol'),grpNames)
Where you would replace symbol with the variable you choose, not in single quotes.

Categorie

Scopri di più su Structures in Help Center e File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by