Extracting a field name from a cell array in a structure

I am trying to extract a field from a cell array of varying sizes. For instance, if I have the following:
name1.name2.name3.name4{1.2}.name5
I want to locate name5, but the cell array is of an unknown and varying size and name5 could be in any cell. It could be:
name1.name2.name3.name4{1,10}.name5
name1.name2.name3.name4{1,8}.name5
name1.name2.name3.name4{1,1}.name5
How do I search for a known field name within a complicated structure such as this?
Thank you, Susie

 采纳的回答

A = name1.name2.name3.name4;
idx = find(cellfun(@isstruct,A));
i2 = cellfun(@(x)any(strcmp(x,'name5')),cellfun(@fieldnames,A(idx),'un',0));
idx = idx(i2);
out = A(idx)

更多回答(0 个)

类别

帮助中心File Exchange 中查找有关 Structures 的更多信息

Community Treasure Hunt

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

Start Hunting!

Translated by