声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

查看: 1517|回复: 6

[绘图技巧] 关于f没有定义的问题

[复制链接]
发表于 2013-12-10 10:58 | 显示全部楼层 |阅读模式

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

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

x
clear all
c=0.1;
w=0.5;
k=0.1;
alfa=pi/6;
phi0=0;
beta=0;
x0=[0.01;0.01;0.01;0.01];
options=odeset;options.RelTol=1e-4;
[t,x]=ode45(@crackandliner,[0 500],x0,options,c,w);
theta=w*t+phi0+beta-fphi(x(3),x(1));
n=sin(theta+fphi(x(3),x(1)));
m=cos(theta+fphi(x(3),x(1)));
theta=mod(theta+2*pi,2*pi);
if theta>=3*pi/2+alfa
    theta=theta-2*pi;
end
if (theta>=-pi/2+alfa) & (theta<=pi/2-alfa)
    f=1;
elseif (theta>pi/2-alfa) & (theta<=pi/2+alfa)
    f=1/2*[1+cos(pi*(theta-pi/2+alfa)./(2*alfa))];
elseif (theta>pi/2+alfa) & (theta<=3*pi/2-alfa)
    f=0;
elseif (theta>3*pi/2-alfa) & (theta<=3*pi/2+alfa)
    f=1/2*[1+cos(pi*(theta-3*pi/2-alfa)./(2*alfa))];
end
aa=f*k*m.^2*x(1)+f*k*n.*m.*x(3);
ezplot(aa);

错误提示
??? Undefined function or variable "f".
Error in ==> Untitled5 at 27aa=f*k*m.^2*x(1)+f*k*n.*m.*x(3);

问题就处在变量f处,之前没有f的时候程序能够正常运行

回复
分享到:

使用道具 举报

发表于 2013-12-10 13:53 | 显示全部楼层
如果
if (theta>=-pi/2+alfa) & (theta<=pi/2-alfa)
    f=1;
elseif (theta>pi/2-alfa) & (theta<=pi/2+alfa)
    f=1/2*[1+cos(pi*(theta-pi/2+alfa)./(2*alfa))];
elseif (theta>pi/2+alfa) & (theta<=3*pi/2-alfa)
    f=0;
elseif (theta>3*pi/2-alfa) & (theta<=3*pi/2+alfa)
    f=1/2*[1+cos(pi*(theta-3*pi/2-alfa)./(2*alfa))];
end
这些判断语句都不满足,里面的语句都不会执行,那么f自然没有被定义。
看看你的判断条件是不是漏了某些可能出现的情况没有考虑
发表于 2013-12-10 16:10 | 显示全部楼层
楼上说的对啊 楼主没有theta<-pi/2+alfa这种情况啊!假如,遇到这种判别条件,里面的语句都不会执行,那么f自然没有被定义了。
发表于 2013-12-10 21:38 | 显示全部楼层
1.应该同个议题吧! http://forum.vibunion.com/thread-128402-1-1.html 难怪眼熟
2.感觉没必要发新帖
3.不知是否隔太久了!? 个人有些懒的细究
4.直觉LZ可能不小心犯同一个失误
 楼主| 发表于 2013-12-11 11:31 | 显示全部楼层
本帖最后由 竹语随风 于 2013-12-11 11:35 编辑

老师们,你们好,我程序中间的f是裂纹的综合模型,大家帮我看看有什么地方出错了,我在这里已经停留了很久了。我感觉也没有什么错误啊theta=mod(theta+2*pi,2*pi);将theta限定在了0-2pi之间,if theta>=3*pi/2+alfa    theta=theta-2*pi;
end将超出的部分进行转化到范围之内。
QQ截图20131211112911.jpg
发表于 2013-12-11 15:46 | 显示全部楼层

楼主,你的crackandliner是自己定义的话,贴出来吧,我们运行一下。还有,楼主这么长时间了,没有调试出来,确实有点烦啊

点评

赞成: 5.0
赞成: 5
楼上辛苦了,很不错,值得学习!谢谢了!!!  发表于 2013-12-12 10:54
发表于 2013-12-12 11:27 | 显示全部楼层
同求,同求
您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

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

GMT+8, 2024-12-1 12:27 , Processed in 0.088534 second(s), 26 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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