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

조회 수: 8 (최근 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개)

카테고리

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