我有一个嵌套结构数组。例如
st(1).a.b.c=1
st(2).a.b.c=2
st(3).a.b.c=3
......等等
如果我想找到' .c'的索引号。对于包含数字3的对象,我尝试以下函数
find([st.a.b.c]==3)
它给出了这个错误:
大括号或点索引表达式的预期输出,但有3个结果。
有人可以帮我解决这个问题吗?
答案 0 :(得分:0)
正如您可能已经想到的那样,在结构中处理多级索引有点令人困惑。但是,可能会发现这有用:
st(1).a.b.c=1;
st(2).a.b.c=2;
st(3).a.b.c=3;
checkLoop = 1;
while checkLoop
if isstruct(st)
fieldNm = fieldnames(st); % In case you have single field in each level
st = [st(:).(fieldNm{1})];
else
checkLoop = 0;
end
end
where3 = find(st == 3);