nsxyhjffzq 发表于 2006-8-26 12:58

求助!关于优化命令Lsqcuevefit的问题。多谢

clc
clear
data=xlsread('D:\wjt\资料\其他\nsxyhjffzq');
xdata1=data(:,1);
ydata1=data(:,2);
xs=xdata1(1);ffs=ydata1(1);
x0=;
fun1=inline('ffs+(xdata1-xs)/(x1(1)*(1+ffs/x1(1))-(xdata1-xs))*(x1(2)+ffs)','x1','xdata1','ffs','xs')
=lsqcurvefit(fun1,x0,xdata1,ydata1);就是这个命令的错误。请各位大佬指教指教!多谢先!

出现的问题如下:
??? Error using ==> D:\matlab6.1\toolbox\optim\private\lsqncommon
User supplied expression or inline function ==> ffs+(xdata1-xs)/(x1(1)*(1+ffs/x1(1))-(xdata1-xs))*(x1(2)+ffs)
failed with the following error:

Error using ==> inline/feval
Not enough inputs to inline function.



Error in ==> D:\matlab6.1\toolbox\optim\lsqcurvefit.m
On line 129==> = ...

buaalqq 发表于 2006-8-26 15:28

其实这个函数也不是很熟悉,看了一下,你试一下,行不行。
先写个函数
function F=fun1(x1,xdata1)
ffs=xdata1(end);
xs=xdata1(1);
xdata1=xdata1(1:length(xdata1)-1);
F=ffs+(xdata1-xs)./(x1(1)*(1+ffs/x1(1))-(xdata1-xs))*(x1(2)+ffs);
保存后,在命令窗口输入,
global xs;
global ffs;
data=xlsread('D:\wjt\资料\其他\nsxyhjffzq');
xdata1=data(:,1);
ydata1=data(:,2);
xdata1=;
x0=;
=lsqcurvefit(@fun1,x0,xdata1,ydata1)
这个指令中函数fun1,好像只能传入xdata1。
没有数据验证,不知对不对。

[ 本帖最后由 buaalqq 于 2006-8-26 15:48 编辑 ]

nsxyhjffzq 发表于 2006-8-27 00:22

多谢您的指点!只是还有一点点问题。

>> global xs;
global ffs;
data=xlsread('D:\wjt\资料\其他\nsxyhjffzq');
xdata1=data(:,1);
ydata1=data(:,2);
xdata1=;
x0=;
=lsqcurvefit(@fun1,x0,xdata1,ydata1)

出现问题如下:
??? Error using ==> horzcat
All matrices on a row in the bracketed expression must have the
same number of rows.

十分感谢!

nsxyhjffzq 发表于 2006-8-27 00:28

恩。谢了。可以了。

:lol
页: [1]
查看完整版本: 求助!关于优化命令Lsqcuevefit的问题。多谢