如何使用ployfit对数据进行居中和缩放

时间:2016-11-13 01:42:33

标签: matlab curve-fitting

我有一组我想要通过的线。在大多数情况下,我最终获得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);

期待任何帮助/建议/意见。谢谢!

1 个答案:

答案 0 :(得分:0)

MATLAB的函数集polyfitpolyval将为您处理中心(平均值的计算)和缩放(计算标准差)。使用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);