hhtnwpu 发表于 2007-5-28 14:08

请大侠指教一下这个程序

sta67_2m.m文件
function yy=model(beta0,x)
a=beta0(1);
b=beta0(2);
c=beta0(3);
x1=x(:,1);
x2=x(:,2);
x3=x(:,3);
yy=(1080+a*x1)*(1+b*log(x2/0.00057))*(1-c*(x3-293)/293);
命令窗口:
x=

y=

beta0=;
betafit=nlinfit(x,y,'sta67_2m.m',beta0)
运行出错,怎么办啊?

xjzuo 发表于 2007-5-28 14:30

还是将原问题用word上传一下吧---看不懂你要做什么.
另:明显地,你的x,y不匹配...

yangzj 发表于 2007-5-28 15:19

把文件名改成sta67_2m改成model(同函数名相同),
拟合参数时用
betafit=nlinfit(x,y,@model,beta0)

hhtnwpu 发表于 2007-5-28 15:37

word 文件及问题

请大侠指教,帮忙解决下,谢谢!!

eight 发表于 2007-5-28 16:39

原帖由 hhtnwpu 于 2007-5-28 15:37 发表 http://www.chinavib.com/forum/images/common/back.gif
请大侠指教,帮忙解决下,谢谢!!

两位版主已经在上面分别给出了提示,请自己动手做一下

ChaChing 发表于 2010-10-29 15:09

本帖最后由 ChaChing 于 2010-10-29 21:08 编辑

以前没使用过nlinfit, 但对3F的意见有怀疑, 就看下help并试下
这么久了, 我想LZ应该解决了, 但忘记分享经验了
问题不在"sta67_2m改成model(同函数名相同)", function后的名称与档案名称其实是可以不同的(但个人不建议如此用), matlab是以档案名称呼叫的
主要问题出在yy计算式不对, 及function handle使用错误
sta67_2m.m
function yy=model(beta0,x)
a=beta0(1); b=beta0(2); c=beta0(3);
x1=x(:,1); x2=x(:,2); x3=x(:,3);
yy=(1080+a*x1).*(1+b*log(x2/0.00057)).*(1-c*(x3-293)/293);主程序 clc; clear
x=;
y=; y=y';
beta0=;
betafit=nlinfit(x,y,'sta67_2m',beta0) %%betafit=nlinfit(x,y,@sta67_2m,beta0)
页: [1]
查看完整版本: 请大侠指教一下这个程序