支承点 发表于 2007-5-22 09:19

Matrix dimensions must agree问题

建立m文件:
function f=test_E(param,R)
hi=;
f=;
运行:
f=; R=;
param0=; options=optimset('LevenbergMarquardt','on');
param=nlinfit(f,R,@test_E,param0)
输出结果是:
??? Error using ==> ./
Matrix dimensions must agree.
Error in ==> C:\MATLAB6p5\work\test_E.m
On line 3==> f=;
Error in ==> C:\MATLAB6p5\toolbox\stats\nlinfit.m
On line 57==> if any(size(feval(model,beta0,X)) ~= size(y))
Error in ==> C:\MATLAB6p5\work\cos_9.m
On line 5==> param=nlinfit(f,R,@test_E,param0)

修改“./”为“/”; 输出结果是:
??? Error using ==> /
Matrix dimensions must agree.
Error in ==> C:\MATLAB6p5\work\test_E.m
On line 3==> f=;
Error in ==> C:\MATLAB6p5\toolbox\stats\nlinfit.m
On line 57==> if any(size(feval(model,beta0,X)) ~= size(y))
Error in ==> C:\MATLAB6p5\work\cos_9.m
On line 5==> param=nlinfit(f,R,@test_E,param0)
这是为什么啊?? 是因为不能使用nlinfit函数,还是我编写错误啊??

[ 本帖最后由 ChaChing 于 2010-4-29 22:05 编辑 ]

xjzuo 发表于 2007-5-22 09:47

把问题用word传上来看看.
尤其是公式及hi的意义要写清楚.

[ 本帖最后由 xjzuo 于 2007-5-22 09:48 编辑 ]

支承点 发表于 2007-5-22 10:23

传上ward

程序出错建立getE1.m文件:
function f=getE1(param,data0,hi)
data0=; x0=data0(1); y0=data0(2); z0=data0(3);
x=; y=; z=; %为了方便,随便弄的数。
n=length(x);
for i=1:n, R=sqrt((x-x0).^2+(y-y0).^2+(z-z0).^2); end
getE1=sum();
运行:
f=;
hi=;
param=; param0=;
options=optimset('LevenbergMarquardt','on');
param=nlinfit(hi,f,getE1,param0)

显示:
??? Input argument 'param' is undefined.
Error in ==> C:\MATLAB6p5\work\getE1.m
On line 13==>getE1=sum();
Error in ==> C:\MATLAB6p5\work\cos_9.m
On line 6==> param=nlinfit(hi,f,getE1,param0)

是为什么啊?

[ 本帖最后由 ChaChing 于 2010-4-30 00:00 编辑 ]

pengweicai 发表于 2007-5-22 11:24

getE1=sum();

改为
f=sum();

你的输出参数没有给定。

支承点 发表于 2007-5-22 12:28

做了修改,还是不对....
谁有时间再给看看啊。
显示错误是:
??? Error using ==> ./
Matrix dimensions must agree.

Error in ==> C:\MATLAB6p5\work\getE1.m
On line 16==>f=sum();

eight 发表于 2007-5-22 13:06

自己稍微调试一下即可

[ 本帖最后由 ChaChing 于 2010-4-29 22:11 编辑 ]

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

急求指教!!!

>> x=;
>> y=';
>> beta0=;
>> beta = nlinfit(x,y,'mymodel2',beta)

M文件:
function yhat = mymodel(beta, x);
          yhat = (beta(1)*x(:,1)+1080)*(1+beta(2)*log(x(:,2)/0.00057))*(1-beta(3)*(x(:,3)-293)/293);
运行报错,error using=>mtimes
Inner matrix dimensions must agree请大侠指教!!!

eight 发表于 2007-5-28 15:28

Inner matrix dimensions must agree 和 Matrix dimensions must agree 这些问题只能靠自己调试,因为没有人知道你的编程目的
页: [1]
查看完整版本: Matrix dimensions must agree问题