search in data structure type

1 visualizzazione (ultimi 30 giorni)
Sososasa
Sososasa il 4 Apr 2014
Commentato: Jos (10584) il 6 Apr 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 Commenti
Jan
Jan il 4 Apr 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 il 4 Apr 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]

Accedi per commentare.

Risposta accettata

Jos (10584)
Jos (10584) il 4 Apr 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 Commenti
Sososasa
Sososasa il 5 Apr 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) il 6 Apr 2014
You can convert linear indices to subindices using IND2SUB
[i,j] = ind2sub(size(subtree),IDX)

Accedi per commentare.

Più risposte (1)

Chandrasekhar
Chandrasekhar il 4 Apr 2014
Struct Find I hope this will help you.

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