Вы можете определить анонимную функцию для навигации по этому конкретному виду структуры в форме top.field1.field2.field3{item}.field4.field5.field6.field7
(в дополнение: действительно ли необходимо иметь такую сложную структуру?).
getField = @(top,fields,item)top.(fields{1}).(fields{2}).(fields{3}){item}.(fields{4}).(fields{5}).(fields{6}).(fields{7})
setField = @(top,fields,item,val)subsasgn(top.(fields{1}).(fields{2}).(fields{3}){item}.(fields{4}).(fields{5}).(fields{6}),struct('type','.','subs',fields{7}),val);
Выиспользуйте функции, вызывая
fieldValue = getField(refxtree,fields,8);
setField(refxtree,fields,8,newFieldValue);
Обратите внимание, что для fields
требуется семь элементов.Если вы хотите обобщить вышесказанное, вам придется динамически создавать вышеприведенные функции