matlab polyfit 相关系数

2024-11-29 05:34:00
推荐回答(3个)
回答1:

a=polyfit(x,y,1);
z=polyval(a,x);
R=corrcoef(x,y);
所示为线性拟合
这样得到的R即为相关系数矩阵,其中
R(1,2)=R(2,1)为相关系数,其值在[-1,1]之间,1表示最大的正相关,-1表示绝对值最大的负相关。
最近开始看这方面的,希望能帮到你。

回答2:

用cftool
>>cftool
回车,出现一个对话框。Data输入相应的x,y,然后create data set;fitting,选择提供的各种模型,逐个试试,总能找到残差最小的,相关系数最大的一种模型。

给个例子。
clc;clear
x=-1:0.1:1
for k=1:length(x)
y(k)=x(k)^2+0.1*rand
end
[p,s]=polyfit(x,y,2)
s.R
plot(x,y,'o',x,polyval(p,x))

结果:
p =

1.0072 0.0091 0.0439

s =

R: [3x3 double]
df: 18
normr: 0.1153

ans =

-2.2509 -0.0000 -3.4208
0 2.7749 0.0000
0 0 -3.0492

s是个结构数组。
S contains fields for the triangular factor (R) from a QR decomposition of the Vandermonde matrix of X, the degrees of freedom (df), and the norm of the residuals (normr).

回答3:

好复杂啊!我没法帮你