带符号的MATLAB绘图错误

时间:2015-03-21 17:21:40

标签: matlab plot

我正在使用下面的代码,并试图在区分位置函数后绘制速度和加速度曲线,但我得到错误。有人可以帮我一把吗?

clc,clear,close all 

t=0:.0001:2*pi/150;
theta= (150*t) ;
r=.2.*cos(theta)+sqrt(.75^2 - (.2.*sin(theta)).^2);
plot(t,r)

hold on

syms t

theta= (150*t);
r=.2.*cos(theta)+sqrt(.75^2 - (.2.*sin(theta)).^2);
v=diff(r,t);
a=diff(r,t,2);

t=0:.0001:2*pi/150;

plot(t,v);
plot(t,a);

hold off 

1 个答案:

答案 0 :(得分:1)

您收到错误的原因是因为当您使用diff时,您正在使用符号。当你正在绘制东西时,你需要得到数字输出。因此,如果您想要使用此功能,则需要额外调用subs,并使用double进行投射。所以:

syms t;

theta= (150*t);
r=.2.*cos(theta)+sqrt(.75^2 - (.2.*sin(theta)).^2);
v=diff(r,t);
a=diff(r,t,2);

%// Change
t_vec=0:.0001:2*pi/150;
v = double(subs(v, t, t_vec));
a = double(subs(a, t, t_vec));

hold on;

%// Change
plot(t_vec,v);
plot(t_vec,a);

hold off