声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

查看: 5085|回复: 5

[综合讨论] Function definition is misplaced or improperly nested

[复制链接]
发表于 2010-11-14 21:18 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?我要加入

x
想利用嵌套函数,可运行了下出现了以下错误 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=[524;16;4.5];
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
回复
分享到:

使用道具 举报

发表于 2010-11-14 22:27 | 显示全部楼层
本帖最后由 zhouyang664 于 2010-11-14 22:32 编辑

出错提示是哪行?
这么长的程序,看完挺神伤啊...
发表于 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."

评分

1

查看全部评分

 楼主| 发表于 2010-11-15 09:34 | 显示全部楼层
回复 2 # zhouyang664 的帖子

出错在中间那个嵌套函数那。。。function F=f(p)%非线性方程,不知道位置是不是有错误
发表于 2010-11-15 17:00 | 显示全部楼层
 楼主| 发表于 2010-11-21 10:30 | 显示全部楼层
回复 5 # 迷路的小孩 的帖子

谢谢啊,我知道了。。。
您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

QQ|小黑屋|Archiver|手机版|联系我们|声振论坛

GMT+8, 2024-5-17 18:41 , Processed in 0.106156 second(s), 18 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表