Matlab运算时为什么出现以下错误: Unable to convert expression into doubl,

Unable to convert expression into double array.
但是385行没有使用double。
for time = 0.0: h: ET
for i=1:npt
xp=xn(i,1);
yp=xn(i,2);
zp=xn(i,3);
uxw=double(subs(uxw,{x,z,t},{xn(i,1),xn(i,3),time}));
Vxw(i,1)=pi*Hw*(exp(Kw(zp))+exp(Kw*zp))*cos(Kw*xp*cos(theta)+Kw*yp*sin(theta)-2*pi*time/Tw)/(exp(Kw*dw)-exp(-Kw*dw))/Tw*cos(theta);
end
end
(uxw、Vxw是两种理论的计算结果,理论上互不影响)
请问这是什么原因,如何解决?

从提示看,你程序中某个算式中含有sym字符,你却要用double命令转成数值,这是转换不了的,就会有这样的提示。请看清提示是哪一行代码有错,针对这行代码查找下问题,再改正。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2019-01-09
错误的意思是,你不能 吧 变量变为bouble,因此,f(x)应该写为f,修改的程序如下:
syms x
f=input('function');
n=input('times of derivation');
s=1;
while s<=n;
f=diff(f,s)+f;
s=s+1;
end
测试通过,祝顺利!本回答被网友采纳
第2个回答  2019-01-09
首先下一个最新版的java,安装好之后在环境变量中新建一个MATLAB_JAVA变量,键值为JAVA的安装路径,例如“C:\Program Files\Java\jre6”就可以运行了。经证实Matlab7.0可以这样在Vista主题下使用,至于7.1行不行,楼主试一下。
相似回答