Least Squares Regression, Help me find the error in my code!
1 Ansicht (letzte 30 Tage)
Ältere Kommentare anzeigen
Suppose the curve you're fitting can follow the form
y = an*x^n+ an-1*x^(n-1)+...+ a1x + a0
x and y are two column vectors of the same size and n is the degree of the polynomial. A is an array of the coefficients, in the order from an to a0.
Solve for A, and the e, the array of the residuals.
Here's what I have: function [A,e] = MyPolyRegressor(x, y, n)
for i= 1:n
x(i)=x.^(n-1);
end;
A=x/y;
e=A*x-y;
Whenever I run it, it says, "In an assignment A(I) = B, the number of elements in B and I must be the same." Please help!
1 Kommentar
Antworten (2)
Matt J
am 26 Okt. 2012
Bearbeitet: Matt J
am 26 Okt. 2012
In
x(i)=x.^(n-1);
the left hand side is a scalar location and the right hand side is not a scalar. So there's no room for it. I don't really understand why you're trying to overwrite x with powers of itself like x.^(n-1).
You should consider the VANDER command. I'm assuming you're not allowed to use POLYFIT.
Azzi Abdelmalek
am 26 Okt. 2012
There is a problem in your x array size, it should be a matrix (nxm) where m is the length of y and m is the lenngth of unknown variables
Siehe auch
Kategorien
Mehr zu Performance and Memory 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!