找回密码
 注册
Simdroid-非首页
查看: 84|回复: 5

解pde方程提示错误“Undefined function or variable”

[复制链接]
发表于 2009-9-2 21:42:39 | 显示全部楼层 |阅读模式 来自 LAN
自己编了一个求解偏微分方程(PDE)的Matlab程序,如附件1所示,运行后出现附件2所示的错误。当直接写d='x/0.0114'时程序可以正常运行。达人指教!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

×
发表于 2009-9-2 21:56:18 | 显示全部楼层 来自 浙江杭州
Simdroid开发平台
引号中符号变量不能用数值赋值等式直接代换,需要用num2str转换一下,不过比较麻烦。如果变量不是很多,可以将数值直接写入字符变量,写成d='x/0.0114'。
回复 不支持

使用道具 举报

 楼主| 发表于 2009-9-2 22:23:19 | 显示全部楼层 来自 LAN
引号中符号变量不能用数值赋值等式直接代换,需要用num2str转换一下,不过比较麻烦。如果变量不是很多,可以将数值直接写入字符变量,写成d='x/0.0114'。
messenger 发表于 2009-9-2 21:56

因为我的Deff有好几个值,也就是有个循环在里面,我没有写出来,所以才写成d='x/Deff',也就是一个Deff对应算得一个d
您说的转换应该如何实现呢?谢谢
回复 不支持

使用道具 举报

发表于 2009-9-2 22:32:07 | 显示全部楼层 来自 浙江杭州
不是说了吗?用num2str,具体可参考FAQ中的C2问题,“如何将参数传递到solve求解的方程组里面?”,原理都是一样的。
回复 不支持

使用道具 举报

发表于 2009-9-2 22:32:12 | 显示全部楼层 来自 河北石家庄
>> A=rand(4,1);
>> for nn=1:4
d=['x/' num2str(A(nn))]
end

d =

x/0.81472


d =

x/0.90579


d =

x/0.12699


d =

x/0.91338

这样可以不

评分

1

查看全部评分

回复 不支持

使用道具 举报

 楼主| 发表于 2009-9-3 16:21:08 | 显示全部楼层 来自 LAN
终于把问题解决了,如下:
把d='x/Deff',改为d=['x/' num2str(Deff)],或者是d=strcat('x/', num2str(Deff))都可以,也就是把Deff转换成串,并用中括号或strcat()函数把两个字符串给连接起来。
谢谢大家的帮忙!

评分

1

查看全部评分

回复 不支持

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

Simapps系列直播

Archiver|小黑屋|联系我们|仿真互动网 ( 京ICP备15048925号-7 )

GMT+8, 2024-10-7 05:31 , Processed in 0.042619 second(s), 15 queries , Gzip On, MemCache On.

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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