diff options
-rw-r--r-- | regress.m | 13 |
1 files changed, 11 insertions, 2 deletions
@@ -1,5 +1,14 @@ function polynom = regress(x, y, degree) - pot = @(x) x.^[degree:-1:0]; - M = reshape(cell2mat(arrayfun(pot, x(:)', 'UniformOutput', false)), degree+1, [])'; + assert(degree == 1 || degree == 2); + % doesnt work with old octave versions currently + %pot = @(x) x.^[degree:-1:0]; + %M = reshape(cell2mat(arrayfun(pot, x(:)', 'UniformOutput', false)), degree+1, [])'; + M = []; + if degree == 1 + M = [ x.^1 x.^0 ]; + end + if degree == 2 + M = [ x.^2 x.^1 x.^0 ]; + end polynom = M \ y(:); endfunction |