Effacer les filtres
Effacer les filtres

Fitting every fifth datapoint one after another

1 vue (au cours des 30 derniers jours)
J.P.
J.P. le 8 Nov 2016
Commenté : J.P. le 8 Nov 2016
Hello!
I want to do a linear regression for a bunch of data, using every fifth or third (maybe tenth) Datapoint. The data will be vary in size and therefor I need to do a function that varies as well.
I did the poly1-fit to the first 13 data already by typing it for each fit. Can you think of any way to solve it via function maybe a loop to solve this seccessively for any size of x- or y-datapoints.
I will be happy for any kind of response that helps me to solve this problem.
Thanks a lot!
The result should look like this for more datapoints:

Réponse acceptée

dbmn
dbmn le 8 Nov 2016
I have a solution that avoids the loops altogehter, but might not be as readable
n = 5; % Number of datapoints
x1 = reshape(x, n, []); % please make sure, that your number will be divisable into n Elements
y1 = reshape(y, n, []);
a = (x1-x1(1,:))\(y1-y1(1,:)); % we use mldivide here and correct for the origin
a = a(1,:);
b = y1(1,:) - a.*x1(1,:); % here we shifted back
b is the offset and a the slope of your curves
  3 commentaires
J.P.
J.P. le 8 Nov 2016
Hi! Thanks for your help. But your solution gives this Error:
Error using - Matrix dimensions must agree.
Error in polyfit_Inet (line 6) a = (x1-x1(1,:))\(y1-y1(1,:)); % we use mldivide here and correct for the origin
J.P.
J.P. le 8 Nov 2016
Okay, I changed the parts a little bit and it works!!!
n = 6; % Number of datapoints
x1 = reshape(x, n, []); % please make sure, that your number will be divisable into n Elements
y1 = reshape(y, n, []);
a = (x1(1)-x1(1,n))\(y1(1)-y1(1,n)); % we use mldivide here and correct for the origin
a = a(1,:);
b = y1(1,:) - a.*x1(1,:); % here we shifted back
figure()
hold on
hdl1 = plot(x1, y1, 'b.');
hdl2 = plot(x1, a.*x1(2,:)+b, 'r-');
But what I get now is a fit including 6 regression lines, which are shifted in parallel.

Connectez-vous pour commenter.

Plus de réponses (0)

Catégories

En savoir plus sur Descriptive Statistics dans Help Center et File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by