Я пытаюсь сделать, диаграмма рассеяния со строкой лучших помещается в matlab, я могу получить диаграмму рассеяния с помощью любого рассеяния (x1, x2) или scatterplot (x1, x2), но основная подходящая опция затенена, и lsline возвращает ошибку 'Никакие позволенные найденные типы строки. Ничто сделанное'
Любая справка была бы большой,
Спасибо, Jon.
lsline
доступна только в Статистическом инструменте, есть ли у вас статистический инструмент? Более общим решением может быть использование polyfit
.
Вам необходимо использовать polyfit
для подгонки строки к вашим данным. Предположим, что у Вас есть данные в y
, а у Вас есть соответствующие значения домена в x
, (т.е. у Вас есть данные, аппроксимирующие y = f(x)
для произвольного f
), то Вы можете подогнать линейную кривую следующим образом:
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;
Обратите внимание, что если Вы хотите подогнать произвольный полиномиал под свои данные, то Вы можете сделать это, изменив последний параметр полифита на размерность кривой. Предположим, что мы назовем эту размерность d
, и Вы получите обратно d+1
коэффициенты в p
, которые представляют собой многочлен, соответствующий оценке f(x)
:
f(x) = p(1) * x^d + p(2) * x^(d-1) + ... + p(d)*x + p(d+1)
Правка, как отмечено в комментарии, можно также использовать polyval
для вычисления r
, синтаксис которого будет выглядеть следующим образом:
r = polyval(p, x);