lsline
jest dostępny tylko w zestawie narzędzi statystycznych, czy masz przybornik statystyk? Bardziej ogólnym rozwiązaniem może być użycie polyfit
.
Musisz użyć polyfit
, aby dopasować linię do danych. Załóżmy, że masz jakieś dane w y
i masz odpowiednie wartości domen w x
(czyli masz dane zbliżonych y = f(x)
dla arbitralnej f
) następnie można zmieścić liniową krzywą następująco:
p = polyfit(x,y,1); % p returns 2 coefficients fitting r = a_1 * x + a_2
r = p(1) .* x + p(2); % compute a new vector r that has matching datapoints in x
% now plot both the points in y and the curve fit in r
plot(x, y, 'x');
hold on;
plot(x, r, '-');
hold off;
Pamiętaj, że jeśli chcesz dopasuj arbitralny wielomian do twoich danych, możesz to zrobić zmieniając ostatni parametr polyfit, aby był wymiarowością krzywej. Przypuśćmy, nazywamy ten wymiar d
, otrzymasz z powrotem d+1
współczynników p
, co stanowi wielomian zgodnego oszacowanie f(x)
:
f(x) = p(1) * x^d + p(2) * x^(d-1) + ... + p(d)*x + p(d+1)
Edit, jak zauważono w komentarzu można również wykorzystać do obliczenia r
polyval
jego składnia chciałby tak:
r = polyval(p, x);
mógłbyś zamieścić swoje dokładne kodu? scatter (x1, x2) a następnie lsline działa dobrze dla mnie ... – 3lectrologos
Jak to jest "niezwiązane z programowaniem" jest poza mną ... – Rook