我有一组我想要通过的线。在大多数情况下,我最终获得Inf或-Inf,尤其是当线条垂直或水平时。我已经看过Matlab对居中和缩放的描述,但我似乎不明白如何将它应用于我的数据。下面是一个示例代码,但请注意,它并不完全是有问题的代码。我使用过这个,因为主代码太长了,无法理解。
x = [0, 1.81, 3.64, 5.45, 7.27];
y = [1, -0.82, -2.64, -4.45, -6.27];
fitline = polyfit([y(1), y(2), y(3), y(4)], [x(1), x(2), x(3), x(4)], 1);
%plot the data
k = linspace(0, 10, 5);
fk = (fitline(1)*k) + fitline(2);
figure, plot(k, fk, 'Color', 'r', 'linewidth', 1);
期待任何帮助/建议/意见。谢谢!
答案 0 :(得分:0)
MATLAB的函数集polyfit
和polyval
将为您处理中心(平均值的计算)和缩放(计算标准差)。使用third output of polyfit
获取参数:
x = [0, 1.81, 3.64, 5.45, 7.27];
y = [1, -0.82, -2.64, -4.45, -6.27];
[fitline,~,mu] = polyfit(y(1:4),x(1:4), 1);
并将它们传递给polyval
:
k = linspace(0, 10, 5);
fk = y = polyval(fitline,k,[],mu);