24小时热门版块排行榜    

CyRhmU.jpeg
查看: 2218  |  回复: 0

460791000

新虫 (初入文坛)

[交流] matlab中出现这个??? Index exceeds matrix dimensions.原因,急求!

想用matalab的最小二乘法进行线性拟合,m函数如下:
function yhat=funex1131(beta,x)
a=beta(1);
b=beta(2);
c=beta(3);
d=beta(4);
x1=x(:,1);
x2=x(:,2);
x3=x(:,3);
x4=x(:,4);
x5=x(:,5);
x6=x(:,6);
yhat=4*a*0.00245*x1.*(300-x3)./x2+5.0930*x1.*(b*x4+c*0.00245+d).*x5./(x2.^3)+0.0245*x6;
主程序及运行结果如下:
clear all
x=[211.398        211.398        211.398        211.398        217.14        217.14        217.14        217.14        217.14        217.14        223.14        223.14        223.14        223.14        229.398        229.398        229.398        229.398        229.398        229.398;0.125        0.125        0.125        0.125        0.125        0.125        0.125        0.125        0.125        0.125        0.125        0.125        0.125        0.125        0.125        0.125        0.125        0.125        0.125        0.125;260        265        252        255        255        260        255        250        260        260        240        265        255        250        255        265        250        265        260        260;2.8        3.5        4.4        2.9        3        3.4        2.9        4.7        4.2        3.3        3.7        2.5        4.8        4.7        2.2        1.7        4        3.1        4        2.1;25.153        24.615        24.406        25.6        28.235        26.667        26.667        26.544        26.544        26.301        25.263        25.6        26.916        26.916        28.374        29.388        27.692        27.042        27.826        30.968;178.2        178.2        178.2        178.2        178        178        178        178        178        178        184        184        184        184        196.2        196.2        196.2        196.2        196.2        196.2]';
y=[16.26        15.8        16.47        16.53        16.2        16.6        15.2074        16.0407        15.7741        15.3        16.73        16.555        17.578        17.833        16.37        15.278        17.663        16.685        17.481        16.789]';
beta0=[1,1,1,1];
[beta,r,j]=nlinfit(x,y,@funex1131,beta0);
beta
ci=nlparci(beta,r,j)
nlintool(x,y,@funex1131,beta0,0.05,'生产时间x','氯气几份y')

beta =

    0.0031    0.0000 -203.5816    0.4988


ci =

  1.0e+010 *

   -0.0000    0.0000
    0.0000    0.0000
   -4.5351    4.5351
   -0.0111    0.0111

??? Index exceeds matrix dimensions.

Error in ==> nlintool at 187
      xstr{k} = xname(k,;
怎么会出现“??? Index exceeds matrix dimensions.Error in ==> nlintool at 187      xstr{k} = xname(k,;”?数据代入进去误差超级大?这是为什么?急求高手指教!多谢!
回复此楼
天道酬勤
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

智能机器人

Robot (super robot)

我们都爱小木虫

相关版块跳转 我要订阅楼主 460791000 的主题更新
普通表情 高级回复(可上传附件)
信息提示
请填处理意见