# How do I write coefficients from nonlinear fits to an array from a loop statement?

1 view (last 30 days)
Katherine on 1 Jun 2017
Answered: Star Strider on 1 Jun 2017
So I am trying to write the coefficients from nonlinear fits I'm doing to an array, but the loop function is writing over the values so I wind up with only the coefficients from the last fit. This is a portion of my code so far.
for Replicate_Loop = 1:Num_Days
Model = char(Equations(Model_Loop,1));
ft_NoZeros = fittype(Model,'independent', 'x', 'dependent', 'y' );
[fitresult_NoZeros, gof_NoZeros] = fit( xData_NoZeros, yData_NoZeros, ft_NoZeros, opts);
values=coeffvalues(fitresult_NoZeros);
end
I'm fairly new to Matlab, so I'm getting a bit lost when it comes to writing the values for each fit including nesting other for loops in, but I don't know the syntax very well. Any help would be really appreciated! Thank you!

Star Strider on 1 Jun 2017
I would save the results to cell arrays for each output you want to save.
Example
for Replicate_Loop = 1:Num_Days
Model = char(Equations(Model_Loop,1));
ft_NoZeros = fittype(Model,'independent', 'x', 'dependent', 'y' );
[fitresult_NoZeros{Replicate_Loop}, gof_NoZeros{Replicate_Loop}] = fit( xData_NoZeros, yData_NoZeros, ft_NoZeros, opts);
values{Replicate_Loop}=coeffvalues(fitresult_NoZeros{Replicate_Loop});
end
Note: The curly braces ‘{}’ denote cell array indexing. See the documentation on Cell Arrays (link) for a full description of them and how to use them.