Store polyfit information of for loop in matrix
4 views (last 30 days)
Show older comments
Hi, I have a graph with x = 6309x1 double and y = 6309x1 double.
I want to fit different increasing areas of the graph with polyfit: polyfit area 1-40; polyfit area 1-80; polyfit area 1-120; ........polyfit area 1-6280 (floor(length(x)/40)*40).
These are 157 (floor(length(x)/40)) different areas and I want to store the fitted y-Values in a 157x16280 (not used rows are gonna be replaced by zero)
How can I achieve this in a for loop? I tried the following, but it doesn't work and I cant fit 157 areas manually
yp = zeros(floor(length(xorg)/40)*40,1);
for i = 40:40:length(xorg)
for j = 1:floor(length(xorg)/40)
yp(:,j) = polyval((polyfit(xorg(1:i,1),yorg(1:i,1),9)), xorg(1:i,1));
end
end
1 Comment
Answers (2)
Jan
on 12 Apr 2022
Maybe:
n = floor(length(xorg) / 40) * 40;
yp = zeros(n, 1);
for j = 1:floor(length(xorg)/40)
m = j * 40;
yp(:, j) = polyval(polyfit(xorg(1:m), yorg(1:m), 9), xorg(1:m, 1));
end
0 Comments
KSSV
on 12 Apr 2022
You may save them into a cell as well.
yp = cell(floor(length(xorg)/40)*40,1);
for i = 40:40:length(xorg)
for j = 1:floor(length(xorg)/40)
yp{j} = polyval((polyfit(xorg(1:i,1),yorg(1:i,1),9)), xorg(1:i,1));
end
end
0 Comments
See Also
Categories
Find more on Logical in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!