How do I assign the same value to every field, including nested fields of a structure?

조회 수: 25(최근 30일)
Say I have a structure which has an unknown number of fields and each field may or may not have subfields. I want to assign a certain value to each field value. I would be okay only going two fields deep into the structure.
For example: Let A have fields a,b, and field a has fields c,d, but field b has no fields. I want to assign all fields to be x so that the result is
A.a.c = x;
A.a.d = x;
A.b = x;

채택된 답변

Walter Roberson
Walter Roberson 2016년 2월 26일
A = structfun(@(s) layer2(s,x), 'Uniform', 0);
together with
function r = layer2(s, x)
if istruct(s)
fn = fieldnames(s);
r = cell2struct( repmat({x}, length(fn), 1), fn, 1);
else
r = x;
end
end

추가 답변(0개)

제품

Community Treasure Hunt

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

Start Hunting!

Translated by