search in data structure type

1 次查看(过去 30 天)
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 个评论
Jan
Jan 2014-4-4
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 2014-4-4
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]

请先登录,再进行评论。

采纳的回答

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

请先登录,再进行评论。

更多回答(1 个)

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

类别

Help CenterFile Exchange 中查找有关 Structures 的更多信息

Community Treasure Hunt

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

Start Hunting!

Translated by