MATLAB出现DOUBLE cannot convert the input expression into a double array.怎么改?急求!

Trial>> syms s;
[t,z]=meshgrid(-10:0.5:10);
arfa=sin(s);beita=sin(z);
rou=sqrt(arfa./beita);
eita=0.5;v=0;miu=1;w0=0;z0=0;c1=1;
w=c1.*int(arfa,s,0,s)+w0;
w1=subs(w,s,z);
Z0=0.5.*arfa;
Z=int(Z0,s,0,s)+z0;
Z1=subs(Z,s,z);
T=t+w1;
A=2.*eita.*(T-miu);
B=4.*eita.^2.*(T.^2+16.*eita.^2.*Z1.^2);
u=4.*eita.*rou.*((8.*eita.^2.*Z1-i).*cosh(A)+2.*i.*eita.*T.*sinh(A))./(cosh(A).^2+B);
u=abs(double(u));
mesh(t,z,u)
错误使用 symengine
DOUBLE cannot convert the input expression into a double array.

出错 sym/double (line 643)
Xstr = mupadmex('symobj::double', S.s, 0);

肯定是有些量定义出了问题,看看你的工作区输入的参数有没有问题,我之前就是稍微改了一下参数试了另一个程序,再回来运行这个程序就出现了和你一样的问题。如果还是发现不了就围绕出问题的代码中的变量,检查与他相关的变量,在检查与相关变量相关的变量,一步一步检查,一定能发现问题的。祝你好运!
温馨提示:答案为网友推荐,仅供参考
第1个回答  2017-05-25
从提示看,你程序中某个算式中含有sym字符,你却要用double命令转成数值,这是转换不了的,就会有这样的提示。请看清提示是哪一行代码有错,针对这行代码查找下问题,再改正。本回答被网友采纳
相似回答