Borrar filtros
Borrar filtros

Retrieving data from structures

2 visualizaciones (últimos 30 días)
Ashlee
Ashlee el 26 de Oct. de 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 comentarios
Matt J
Matt J el 26 de Oct. de 2012
See my solution below, then.
Ashlee
Ashlee el 26 de Oct. de 2012
you sir, are my hero.

Iniciar sesión para comentar.

Respuesta aceptada

Matt J
Matt J el 26 de Oct. de 2012
Editada: Matt J el 26 de Oct. de 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)};

Más respuestas (1)

Ryan G
Ryan G el 26 de Oct. de 2012
Editada: Ryan G el 26 de Oct. de 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.

Categorías

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

Community Treasure Hunt

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

Start Hunting!

Translated by