shoney 发表于 2009-9-2 21:42:39

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

自己编了一个求解偏微分方程(PDE)的Matlab程序,如附件1所示,运行后出现附件2所示的错误。当直接写d='x/0.0114'时程序可以正常运行。达人指教!

messenger 发表于 2009-9-2 21:56:18

引号中符号变量不能用数值赋值等式直接代换,需要用num2str转换一下,不过比较麻烦。如果变量不是很多,可以将数值直接写入字符变量,写成d='x/0.0114'。

shoney 发表于 2009-9-2 22:23:19

引号中符号变量不能用数值赋值等式直接代换,需要用num2str转换一下,不过比较麻烦。如果变量不是很多,可以将数值直接写入字符变量,写成d='x/0.0114'。
messenger 发表于 2009-9-2 21:56 http://forum.simwe.com/images/common/back.gif
因为我的Deff有好几个值,也就是有个循环在里面,我没有写出来,所以才写成d='x/Deff',也就是一个Deff对应算得一个d
您说的转换应该如何实现呢?谢谢

messenger 发表于 2009-9-2 22:32:07

不是说了吗?用num2str,具体可参考FAQ中的C2问题,“如何将参数传递到solve求解的方程组里面?”,原理都是一样的。

feynmand 发表于 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

这样可以不

shoney 发表于 2009-9-3 16:21:08

终于把问题解决了,如下:
把d='x/Deff',改为d=['x/' num2str(Deff)],或者是d=strcat('x/', num2str(Deff))都可以,也就是把Deff转换成串,并用中括号或strcat()函数把两个字符串给连接起来。
谢谢大家的帮忙!
页: [1]
查看完整版本: 解pde方程提示错误“Undefined function or variable”