matlab求助,Conversion to double from sym is not possible. 15

symsNupazthetaxbr;N=2000;b=1;u=4*pi*10^(-7);p=1;a=40;theta=0.2;r=-b*cos(x)+sqrt(a^2-b... syms N u p a z theta x b r;
N=2000;
b=1;
u=4*pi*10^(-7);
p=1;
a=40;
theta=0.2;
r=-b*cos(x)+sqrt(a^2-b^2*(sin(x)^2));
y1=N*u*p*a/(4*pi)*(r-z*sin(theta)*cos(x))/(((-z*sin(theta)+r*cos(x))^2+(r*sin(x))^2+z^2)^(3/2));
y2=int(y1,x,0,2*pi);
e=-diff(y2,z);
t=-100:1:-1;
y3=subs(e,z,t); (1)
plot(t,y3,'r') (2)
hold on
t=1:1:100;
y4=subs(e,z,t);
plot(t,y4,'r')
plot(0,0,'r*')
程序为什么运行无结果输出?逐条运行直到(1)处都是好的,到(2)就显示
??? Error using ==> plot
Conversion to double from sym is not possible.
这是什么原因呢?麻烦帮忙改一下,万分感谢!!
展开
 我来答
tianxiawulang
推荐于2018-03-11 · TA获得超过2.7万个赞
知道大有可为答主
回答量:4732
采纳率:89%
帮助的人:2656万
展开全部

由于前面的地方符号运算没有得到显式解,所以subs之后的y3仍然是符号量,需要将其转换为数值类型才能绘图。

 

y3=subs(e,z,t);

改成

y3=double(subs(e,z,t));

或者

for i=1:length(t),y3(i)=double(subs(e,z,t(i))),end

 

计算比较耗时,我只算到这个位置,后面y4也类似处理即可。

推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式