声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

查看: 949|回复: 1

[编程技巧] 关于非线形回归问题遇到的程序错误

[复制链接]
发表于 2007-7-22 10:54 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?我要加入

x
先定义了一个函数文件huaxue.m:
function yhat=huaxue(beta,x);
yhat=(beta(4)*x(2)-x(3)/beta(5))./(1+beta(1)*x(1)+beta(2)*x(2)+beta(3)*x(3));
然后,用nlinfit计算回归系数,用nlparci计算回归系数的置信区间,用nlpredci计算预测值
即其置信区间,编程如下:(在Untitled15.m中)
clc,clear
x0=[1 8.55 470 300 10
2 3.79 285 80 10
3 4.82 470 300 120
4 0.02 470 80 120
5 2.75 470 80 10
6 14.39 100 190 10
7 2.54 100 80 65
8 4.35 470 190 65
9 13.00 100 300 54
10 8.50 100 300 120
11 0.05 100 80 120
12 11.32 285 300 10
13 3.12 285 190 120];
x=x0(:,3:5);
y=x0(:,2);
beta=[0.1,0.05,0.02,1,2]; %回归系数的初值
[betahat,f,j]=nlinfit(x,y, ' huaxue ' ,beta); % f,j是下面命令用的信息
betaci=nlparci(betahat,f,j);
betaa=[betaa,betaci] %回归系数及其置信区间
[yhat,delta]=nlpredci( ' huaxue ' ,x,betahat,f,j)%y的预测值及其置信区间半径,置信区间为yhat ±delta。
运行时报错:
??? Error using ==> nlinfit
FUN should return a column vector of the same length as Y.

Error in ==> D:\matlab\work\Untitled15.m
On line 5 ==> [betahat,f,j]=nlinfit(x,y,'huaxue',beta); % f,j是下面命令用的信息

各位有知道为什么的吗?我觉得维数没有错呀。

[ 本帖最后由 eight 于 2007-7-23 12:47 编辑 ]
回复
分享到:

使用道具 举报

发表于 2007-7-22 13:27 | 显示全部楼层

回复 #1 淡冬暖流 的帖子

是调用nlinfit函数的时候错了。看一下这个帖子,和你的问题是一样的。以后记得在问之前先搜索一下版面,好多问题都是讨论过的。
http://forum.vibunion.com/forum/thread-48936-1-1.html
您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

QQ|小黑屋|Archiver|手机版|联系我们|声振论坛

GMT+8, 2024-9-24 01:16 , Processed in 0.056277 second(s), 18 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表