回 帖 发 新 帖 刷新版面

主题:如何构建nlinfit()函数中的x矩阵

我有形如: 
    6                12            18                24                30(X1)
40    0.86401187    0.866099157    0.867398348    0.86937554    0.870896092
60    0.854009255    0.855680665    0.857071684    0.858549464    0.859949833
80    0.83886257    0.840435757    0.841817144    0.84312376    0.84447422
100    0.819346113    0.821072474    0.822730598    0.824357519    0.825876722
120    0.799431577    0.80125399    0.802904876    0.804598692    0.806227141   (y)
(x2)
的一组数据
只不过x1有100个,x2有8个.
采用nlinfit()函数进行回归.
但不知道怎样构建x矩阵?
我试过x=[x1;x2],但显示的变量很奇怪.
哪位好心的大侠帮帮忙,先谢谢啦!
[em1][em1]

回复列表 (共31个回复)

沙发

yhat=b(1)+b(2)*x1+b(3)*x2+b(4)*x2.^2;
b=[.8767961342,  .2632939270e-3, -.1804545782e-3, -.3988452243e-5]
R^2=.999302

板凳

x矩阵呢?就是自变量.
还有y矩阵,都怎么表示啊?

3 楼

x1=[6 6 6 6 6 12 12 ....]'
x2=[40 60 80 100 120 40 60 ...]'
y=[.8640 .8540 ...]'

4 楼

知道了,先谢谢了.我先试试看!
我的x1有100个数据,x2有8个,y有800个数据.晕!!!!还不只这一组.
还有没有简单点的方法?

5 楼

先将Y阵读入,然后y=Y(:)就变成一列了。x1,x2变成各自的一列应该没有什么难度。

6 楼

谢谢指教!

7 楼


那x,y列向量是不是要作成数据文件?怎么做啊?[em1][em8]

8 楼

终于算出来了,但得到的结果和1楼不一样:
0.88074  -0.0027287      9.1683e-005  -7.934e-008
我的初始值:beta0=[0.01 0.01 0.01 0.01];
从道理上讲,应该与初试值无关啊?
怎么回事啊?

9 楼

将 Y 数据存成xls文件,如:ydata.xls
在matlab下:
Y=xlsread('ydata')
y=Y(:)
即可将 Y 拉长成一列。至于x1,x2,可复制、粘贴或先存成xls,用类似的方式读入等方法。

10 楼

用我给的值作为初值再试试看。

我来回复

您尚未登录,请登录后再回复。点此登录或注册