Filter löschen
Filter löschen

Fitting every fifth datapoint one after another

1 Ansicht (letzte 30 Tage)
J.P.
J.P. am 8 Nov. 2016
Kommentiert: J.P. am 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:

Akzeptierte Antwort

dbmn
dbmn am 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 Kommentare
J.P.
J.P. am 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. am 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.

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (0)

Kategorien

Mehr zu Descriptive Statistics 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!

Translated by