How to recursively add fields in a structure.
5 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
Michael
am 13 Jun. 2014
Kommentiert: Geoff Hayes
am 25 Jun. 2014
Hey there!
I am trying to recursively add results into a single structure from the following piece of code: http://www.mathworks.com/matlabcentral/fileexchange/18160-evaluate-nelson-siegel-function/content/nelson/nelsonfit.m
This function returns a structure with two field which have dimensions of 1x1 and 4x1 respectively. Instead of the input y, which in the example is a 1x11 vector, I would like to insert an array with multiple rows. I thought I should write a different function which repeats the nelsonfit function with as input y each time a different row of matrix X. That is not the problem, however I am stuck with adding the returned values of the nelsonfit function. I can add the structures but it creates a 1x2 structure while I need a 1x1 structure where the fields are simply concatenated.
Any tips or hints would be much appreciated!
Kind regards,
Michael
0 Kommentare
Akzeptierte Antwort
Geoff Hayes
am 13 Jun. 2014
How are you concatenating the fields? If I run nelsonfit with two different sets of inputs, the function returns two structures with the tau and beta fields of dimensions 1x1 and 3x1 respectively. If par1 and par2 are the two returned structures, then I can create one as follows:
parAll.tau = [par1.tau par2.tau];
parAll.beta = [par1.beta par2.beta];
with parAll now being a single structure
parAll =
tau: [2.7680 1.1280]
beta: [3x2 double]
Appending the third structure is just as easy
parAll.tau = [parAll.tau par2.tau];
parAll.beta = [parAll.beta par2.beta];
Try the above and see what happens!
4 Kommentare
Weitere Antworten (1)
Siehe auch
Kategorien
Mehr zu Structures finden Sie in Help Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!