search in data structure type

1 visualización (últimos 30 días)
Sososasa
Sososasa el 4 de Abr. de 2014
Comentada: Jos (10584) el 6 de Abr. de 2014
Hi, I have a struct type array:
subtree(1).Parent= [2 2 2]
subtree(1).Children= [1 2 3; 3 2 4]
subtree(2).Parent= [1 2 2]
subtree(2).Children= [1 2 3; 5 5 5]
My question is, if I know the Parent value=[2 2 2] and I don't know the subtree index, how can I find/search its children=[1 2 3; 3 2 4]? In another words how I can get the index of the subtree that contain Parent= [2 2 2]
  2 comentarios
Jan
Jan el 4 de Abr. de 2014
It depends on how "parent value" and "its children" is defined. Are you looking for the subtree index of e.g. [2,2,2] or do you want to obtain all column values of the Children fields for all Parent values like 2? Please post a meaningful example.
Sososasa
Sososasa el 4 de Abr. de 2014
Are you looking for the subtree index of e.g. [2,2,2] ? Yes exactly, [2 2 2] is a parent and I want to get the children [1 2 3; 3 2 4]

Iniciar sesión para comentar.

Respuesta aceptada

Jos (10584)
Jos (10584) el 4 de Abr. de 2014
TargetParent = [2 2 2]
TF = arrayfun(@(k) isequal(subtree(k).Parent, TargetParent), 1:numel(subtree)) % logical indices
IDX = find(TF) % convert to linear indices
  2 comentarios
Sososasa
Sososasa el 5 de Abr. de 2014
Oh thats really great answer. it turns out I have 2D structure subtree(i,j).Parent; subtree(i,j).Children How can I get i and j for the subtree if I know a Parent value ?
Jos (10584)
Jos (10584) el 6 de Abr. de 2014
You can convert linear indices to subindices using IND2SUB
[i,j] = ind2sub(size(subtree),IDX)

Iniciar sesión para comentar.

Más respuestas (1)

Chandrasekhar
Chandrasekhar el 4 de Abr. de 2014
Struct Find I hope this will help you.

Categorías

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

Etiquetas

Community Treasure Hunt

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

Start Hunting!

Translated by