|
本帖最后由 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=[0.028 0.00057 293;0.037 0.00057 293;0.045 0.00057 293;0.053 0.00057 293;0.061 0.00057 293;0.072 0.00057 293;0.08 0.00057 293;0.089 0.00057 293;0.093 0.00057 293;0.106 0.00057 293;0.113 0.00057 293;0.124 0.00057 293;0.133 0.00057 293;0.028 1500 293;0.037 1500 293;0.045 1500 293;0.053 1500 293;0.061 1500 293;0.072 1500 293;0.08 1500 293;0.089 1500 293;0.093 1500 293;0.106 1500 293;0.113 1500 293;0.124 1500 293;0.133 1500 293;0.028 1500 183;0.037 1500 183;0.045 1500 183;0.053 1500 183;0.061 1500 183;0.072 1500 183;0.08 1500 183;0.089 1500 183;0.093 1500 183;0.106 1500 183;0.113 1500 183;0.124 1500 183;0.133 1500 183;0.028 1500 163;0.037 1500 163;0.045 1500 163;0.053 1500 163;0.061 1500 163;0.072 1500 163;0.08 1500 163;0.089 1500 163;0.093 1500 163;0.106 1500 163;0.113 1500 163;0.124 1500 163;0.133 1500 163];
- y=[1070 1080 1090 1100 1120 1130 1150 1150 1160 1170 1180 1190 1195 1410 1420 1430 1440 1450 1460 1470 1470 1480 1470 1480 1480 1495 1530 1600 1615 1610 1605 1610 1620 1620 1620 1615 1620 1620 1625 1690 1720 1730 1740 1740 1760 1760 1760 1750 1755 1740 1725 1730]; y=y';
- beta0=[1000 0 0];
- betafit=nlinfit(x,y,'sta67_2m',beta0) %%betafit=nlinfit(x,y,@sta67_2m,beta0)
复制代码 |
评分
-
1
查看全部评分
-
|