Filter löschen
Filter löschen

How to copy field contents of one struct to another?

149 Ansichten (letzte 30 Tage)
Ralf
Ralf am 13 Jul. 2015
Bearbeitet: Guillaume am 13 Jul. 2015
Hi all,
I have got two structs, A and B. B has a subset of the fields of A:
A.f1 = 1;
A.f2 = 2;
A.f3 = 3;
B.f1 = 4;
B.f2 = 5;
Now I want to copy all field content of B to the corresponding fields of struct A, leaving the other fields of A unchanged:
A.f1 = B.f1;
A.f2 = B.f2;
% A.f3 == 3 untouched
Is there a simply way to achieve this for arbitraty structs A and B, considering that B's field names are always a subset of A's field names?
Thank you very much, Ralf

Akzeptierte Antwort

Guillaume
Guillaume am 13 Jul. 2015
Bearbeitet: Guillaume am 13 Jul. 2015
Iterate over the fieldnames of B to copy them using dynamic field names:
A = struct('f1', 1, 'f2', 2, 'f3', 3);
B = struct('f1', 4, 'f2', 5);
for fn = fieldnames(B)'
A.(fn{1}) = B.(fn{1});
end

Weitere Antworten (0)

Kategorien

Mehr zu Structures finden Sie in Help Center und File Exchange

Tags

Produkte

Community Treasure Hunt

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

Start Hunting!

Translated by