| 查看: 978 | 回复: 7 | ||
[求助]
运行matlab程序中自定义函数时出问题了,还请大神帮忙!谢谢已有1人参与
|
|
我自定义了三个函数Y1(),Y2(),Y3(),三个函数只是内部参数k发生变 在这里我给出Y1()代码 function h=Y1(x) %参数 k=0.1884;l=25.5;pA=1070; u=cosh(k*x)+cos(k*x)-((sinh(k*x)+sin(k*x))*(cosh(k*l)-cos(k*l)))/(sinh(k*l)-sin(k*l)); a=sqrt(pA*eval(int(u^2,x,0,l))); h=u/a; 下面是主程序,目的在于绘出Y1,Y2,Y3曲线图。 clear clc x=0.1:0.1:25.5; for m=1:1:255 y1(m)=Y1(x(m)); end for m=1:1:255 y2(m)=Y2(x(m)); end for m=1:1:255 y3(m)=Y3(x(m)); end plot(x,y1); hold on plot(x,y2); hold on plot(x,y3); hold on 运行是程序在调用Y1()时出错,提示为 ??? Undefined function or method 'int' for input arguments of type 'double'. Error in ==> Y1 at 4 a=sqrt(pA*eval(int(u^2,x,0,l))); Error in ==> zhenxing at 6 y1(m)=Y1(x(m)); 也就是在Y1()中调用int积分函数时出错,为什么会这样啊?????如果我将a=sqrt(pA*eval(int(u^2,x,0,l)));提前算出,直接将这行替换为a=169.2216;却可以运行,并最后绘制出我要的曲线。但是在我自己定义的函数中调用int()居然会出错?求大神帮助! 谢谢 ![]() |
» 猜你喜欢
【复旦大学】二维材料方向招收2026年博士研究生1名
已经有0人回复
北京纳米能源与系统研究所 王中林院士/曹南颖研究员课题组2026级硕/博/博后招生
已经有10人回复
物理学I论文润色/翻译怎么收费?
已经有296人回复
荷兰Utrecht University超快太赫兹光谱王海教授课题招收2026 CSC博士生
已经有23人回复
反铁磁体中的磁性切换:两种不同的机制已成功可视化
已经有0人回复
求标准粉末衍射卡号 ICDD 01-076-1802
已经有0人回复
新西兰Robinson研究所招收全奖PhD
已经有0人回复
石墨烯转移--二氧化硅衬底石墨烯
已经有0人回复
» 本主题相关价值贴推荐,对您同样有帮助:
运行matlab程序出现警告:TIFF库警告,怎么解决啊
已经有0人回复
matlab程序运行报错 求解
已经有2人回复
已有matlab程序 如何导入excel数据运行
已经有9人回复
已有matlab程序 如何导入excel数据运行
已经有2人回复
求助!哪位大神帮忙运行下MATLAB程序,求结果!
已经有3人回复
matlab程序运行报错求助
已经有7人回复
求助MATLAB程序
已经有5人回复
Matlab中如何运行C++程序
已经有3人回复
matlab程序
已经有7人回复
Matlab程序 运行结束 提示
已经有5人回复
MATLAB程序调试
已经有9人回复
MATLAB程序调整
已经有4人回复
matlab程序运行时快时慢
已经有8人回复
一个MATLAB程序,运行不出来
已经有1人回复
一个matlab程序,运行不出来
已经有2人回复
matlab程序运行出错,求指点修改
已经有4人回复
matlab程序只运行一次就跳出的问题
已经有2人回复
matlab程序运行中出现的函数问题
已经有1人回复
2楼2015-11-13 09:31:55
3楼2015-11-13 12:15:17
4楼2015-11-13 16:52:07
小木虫zb
木虫 (正式写手)
- 应助: 11 (小学生)
- 金币: 1560.9
- 红花: 5
- 帖子: 345
- 在线: 142.1小时
- 虫号: 1227944
- 注册: 2011-03-10
- 性别: GG
- 专业: 分离过程
5楼2015-11-13 20:59:56
|
谢谢回答,我已解决了问题,确实发觉函数Y1(x)中的u为数值而非符号表达式。然后我建立了符号变量 syms x k l 将int(u,x,0,l) 计算出来 下面是我解决问题后的代码 function h=Y1(x) k=0.1884;l=25.5;pA=1070; u=cosh(k*x)+cos(k*x)-((sinh(k*x)+sin(k*x))*(cosh(k*l)-cos(k*l)))/(sinh(k*l)-sin(k*l)); %p为符号积分int(u^2,x,0,l)结果,为符号表达式 p=1/4*-4*cosh(k*l)*cos(k*l)^2*exp(3*k*l)-4*sin(k*l)^2*cosh(k*l)*exp(3*k*l)+4*sinh(k*l)*cos(k*l)^3*exp(2*k*l)-sin(k*l)*sinh(k*l)-cosh(k*l)*cos(k*l)+cosh(k*l)^2-4*cos(k*l)^3*exp(k*l)+8*sin(k*l)*sinh(k*l)*k*exp(2*k*l)*l+4*exp(2*k*l)*sinh(k*l)*sin(k*l)^2*cos(k*l)+4*sin(k*l)^2*cos(k*l)*exp(3*k*l)-4*sin(k*l)^2*cos(k*l)*exp(k*l)+4*cos(k*l)^3*exp(3*k*l)-exp(4*k*l)*cosh(k*l)^2+4*sinh(k*l)*cosh(k*l)*exp(3*k*l)*sin(k*l)+4*cosh(k*l)*cos(k*l)*exp(3*k*l)*sin(k*l)-4*sinh(k*l)*cosh(k*l)*sin(k*l)*exp(k*l)-4*exp(2*k*l)*cosh(k*l)^2*k*l-4*sinh(k*l)*cosh(k*l)*cos(k*l)^2*exp(2*k*l)+4*cosh(k*l)*cos(k*l)*sin(k*l)*exp(k*l)+4*exp(2*k*l)*cos(k*l)^2*k*l+exp(4*k*l)*sinh(k*l)*cosh(k*l)+exp(4*k*l)*sinh(k*l)*sin(k*l)+exp(4*k*l)*sin(k*l)*cos(k*l)-exp(4*k*l)*sin(k*l)*cosh(k*l)+4*sin(k*l)^2*cosh(k*l)*exp(k*l)-4*cosh(k*l)^2*sin(k*l)*exp(k*l)+exp(4*k*l)*cosh(k*l)*cos(k*l)-exp(4*k*l)*sinh(k*l)*cos(k*l)-4*cosh(k*l)^2*exp(3*k*l)*sin(k*l)+4*cosh(k*l)*cos(k*l)^2*exp(k*l)+4*sin(k*l)^2*sinh(k*l)*exp(k*l)+4*sin(k*l)^2*sinh(k*l)*exp(3*k*l)+sinh(k*l)*cosh(k*l)-sinh(k*l)*cos(k*l)-sin(k*l)*cosh(k*l)+sin(k*l)*cos(k*l)+2*exp(2*k*l)*sin(k*l)*cos(k*l)-2*exp(2*k*l)*sin(k*l)*cosh(k*l)+2*exp(2*k*l)*sinh(k*l)*cosh(k*l)-2*exp(2*k*l)*sinh(k*l)*cos(k*l))/k/(-cosh(k*l)^2+cos(k*l)^2+2*sin(k*l)*sinh(k*l))*exp(-2*k*l); a=sqrt(pA*p); h=u/a; |
6楼2015-11-16 10:05:19
yanshuiting
新虫 (正式写手)
- 应助: 1 (幼儿园)
- 金币: 1484.8
- 散金: 50
- 红花: 7
- 帖子: 448
- 在线: 68.7小时
- 虫号: 2633300
- 注册: 2013-09-03
- 专业: 计算机科学
|
楼上说的是对的,x和u是符号变量,才能使用 int()函数,你的代码里面一是没有进行定义,二是你把它理解成常数了。所以会报错,找不到该函数(你把int函数用错了) 发自小木虫Android客户端 |
7楼2015-11-16 10:17:56
getengqing
木虫 (正式写手)
- 应助: 104 (高中生)
- 金币: 3759.8
- 散金: 30
- 红花: 5
- 帖子: 592
- 在线: 110.5小时
- 虫号: 2986702
- 注册: 2014-02-23
- 性别: GG
- 专业: 自然语言理解与机器翻译

8楼2015-11-16 11:41:51














回复此楼