lxx244lxx 发表于 2010-11-14 21:18

Function definition is misplaced or improperly nested

想利用嵌套函数,可运行了下出现了以下错误 Function definition is misplaced or improperly nested.,这个好像函数定义位置错误,不知道怎么解决,请高手给予指教。百忙之中耽误你们的时间,实在不好意思。。
function feijunxiang
CCO=zeros(700,1);% 气相
CCO2=zeros(700,1);
CT=zeros(700,1);
cCO=zeros(700,1);% 固相
cCO2=zeros(700,1);
cT=zeros(700,1);
CCO(1)=16.10;CCO2(1)=4.60;CT(1)=523;
p0=;
pg=2.268;a=516;ps=1176;r=1;a=1000000;R=8.314;n=200;u=1.3838;dz=0.01;
for i=1:700
    p=fsolve(@f,p0);   % 根据CCO(i)、CCO2(i)、CT(i)的值求解cCO(i)、cCO2(i)、cT(i)的值
    function F=f(p)%非线性方程
F=[(8.7848*10^(-4)*(CT(i)/298)^1.75+149*10^(-4)*(CT(i)/298)^(7/6))*516*(CCO(i)-p(1))-1539140.0731497/200*exp(-79950.0517840678/R/p(3))*p(1)*1176*1000/3600;
(7.1788*10^(-4)*(CT(i)/298)^1.75+130.59*10^(-4)*(CT(i)/298)^(7/6))*516*(CCO2(i)-p(2))-1062673869.91041/200*exp(-105800.040358714/R/p(3))*1176*1000/3600;
155.53*516*(p(3)-CT(i))-(1539140.0731497/200*exp(-79950.0517840678/R/p(3))*p(1)*1176*(188.1276+0.0724*p(3)-4.2782*10^(-5)*p(3)^2+7.9724*10^(-9)*p(3)^3)+1062673869.91041/200*exp(-105800.040358714/R/p(3))*1176*(146.4633+0.06996*p(3)-2.7313*10^(-5)*p(3)^2+1.8928*10^(-9)*p(3)^3))*1000000/3600;];
   end
    cCO(i)=p(1);
    cCO2(i)=p(2);
    cT(i)=p(3); %求得的解赋给cCO(i)、cCO2(i)、cT(i)
dCCO=(8.7848*10^(-4)*(CT(i)/298)^1.75+149*10^(-4)*(CT(i)/298)^(7/6))*516*(CCO(i)-cCO(i))/u*dz;
dCCO2=(7.1788*10^(-4)*(CT(i)/298)^1.75+130.59*10^(-4)*(CT(i)/298)^(7/6))*516*(CCO2(i)-cCO2(i))/u*dz;
dT=155.5330*516*(cT(i)-CT(i))/u/pg/(2666.653876+1.373028273*CT(i)+6.273853772606*10^(-4)*CT(i)^2-4.19418873045093*10^(-7)*CT(i)^3)*dz;
% 求CCO、CCO2、CT的变化量
CCO(i+1)=CCO(i)-dCCO;
CCO2(i+1)=CCO2(i)-dCCO2;
CT(i+1)=CT(i)+dT;%CCO(i+1)、CCO2(i+1)、CT(i+1)的值等于CCO(i)、CCO2(i)、CT(i)的值加上它们的变化量
end
CCO
CCO2
CT
cCO
cCO2
cT   %输出这些值
end

zhouyang664 发表于 2010-11-14 22:27

本帖最后由 zhouyang664 于 2010-11-14 22:32 编辑

出错提示是哪行?
这么长的程序,看完挺神伤啊...

Happy99 发表于 2010-11-14 22:57

回复 1 # lxx244lxx 的帖子

from matlab Help :
"You cannot however define a nested function inside any of the MATLAB program control statements. This includes any block of code that is controlled by an if, else, elseif, switch, for, while, try, or catch statement."

lxx244lxx 发表于 2010-11-15 09:34

回复 2 # zhouyang664 的帖子

出错在中间那个嵌套函数那。。。function F=f(p)%非线性方程,不知道位置是不是有错误

迷路的小孩 发表于 2010-11-15 17:00

lxx244lxx 发表于 2010-11-15 09:34 static/image/common/back.gif
回复 2 # zhouyang664 的帖子

出错在中间那个嵌套函数那。。。function F=f(p)%非线性方程,不知道位置是不 ...

循环中不能定义嵌套函数

lxx244lxx 发表于 2010-11-21 10:30

回复 5 # 迷路的小孩 的帖子

谢谢啊,我知道了。。。
页: [1]
查看完整版本: Function definition is misplaced or improperly nested