登录论坛

查看完整版本 : [MATLAB基础] 在线等:关于regress的问题!


TONY888666
2009-10-09, 20:08
程序如下:
x1=[0.050 0.055 0.065 0.070 0.080 0.085 0.070 0.070 0.070 0.070 0.070 0.070 0.070 0.070 0.070 0.070 0.070 0.070 0.070 0.070 0.070 0.070 0.070 0.070];
x2=[0.169 0.169 0.169 0.169 0.169 0.169 0.150 0.155 0.160 0.165 0.170 0.175 0.180 0.169 0.169 0.169 0.169 0.169 0.169 0.169 0.169 0.169 0.169 0.169];
x3=[0.450 0.450 0.450 0.450 0.450 0.450 0.450 0.450 0.450 0.450 0.450 0.450 0.450 0.435 0.440 0.445 0.450 0.455 0.460 0.465 0.470 0.450 0.450 0.450];
x4=[0.077 0.077 0.077 0.077 0.077 0.077 0.077 0.077 0.077 0.077 0.077 0.077 0.077 0.077 0.077 0.077 0.077 0.077 0.077 0.077 0.077 0.060 0.065 0.070];
x5=[56.0 56.0 56.0 56.0 56.0 56.0 56.0 56.0 56.0 56.0 56.0 56.0 56.0 56.0 56.0 56.0 56.0 56.0 56.0 56.0 56.0 56.0 56.0 56.0];
y1=[2.0 2.0 2.0 2.0 2.0 1.95 2.0 2.0 2.0 2.0 2.0 2.0 2.0 1.9 1.9 1.9 2.0 2.0 1.9 1.9 1.9 2.2 2.0 2.0];
X1=[ ones(24,1) x1.' x2.' x3.' x4.' x5.']
[b1] = regress(y1.',X1)

运行结果:
b1 =

0
-1.3053
-1.2015
-0.7301
-9.6564
0.0595

为是么这个常数项是0呢?哪位大虾来指正一下,谢谢!

stonegeo
2009-10-15, 21:46
X1中第一列和最后一列都是相同的数,这样会导致矩阵缺秩.这应该是导致问题产生的原因.我试着改了下最有一列的最后一个数为56.10,结果为
b1 =

24.0513
-1.2916
-1.1707
-0.7463
-10.1261
-0.3693
不知道对你有无帮助.