我想用matlab作个匀变速直线运动的曲线,先匀加速一半的时间,再减速,最后停止。 但总提醒变量未定义
clc;clear;t=0:0.01:1;S0=-0.25*pi;ift<=0.5a=2*pi;V=a*t;S=S0+0.5*a.*t.^2;endift>0.5a=-2...
clc;
clear;
t=0:0.01:1;
S0=-0.25*pi;
if t<=0.5
a=2*pi;
V=a*t;
S=S0+0.5*a.*t.^2;
end
if t>0.5
a=-2*pi;
V=a*(t-0.5);
S=S0+a*0.5+0.5*a.*(t-0.5).^2
end
plot(t,V,'-or',t,S,'-oy'); 展开
clear;
t=0:0.01:1;
S0=-0.25*pi;
if t<=0.5
a=2*pi;
V=a*t;
S=S0+0.5*a.*t.^2;
end
if t>0.5
a=-2*pi;
V=a*(t-0.5);
S=S0+a*0.5+0.5*a.*(t-0.5).^2
end
plot(t,V,'-or',t,S,'-oy'); 展开
1个回答
展开全部
本来循环中可以用全局变量的,但有点嫌麻烦,就直接改了:
clear all;clc;
t=0:0.01:1;
S0=-0.25*pi;
a=2*pi;
for ii=1:length(t)
if t(ii)<=0.5
V(ii)=a*t(ii);
S(ii)=S0+0.5*a*t(ii)^2;
elseif t(ii)>0.5
V(ii)=a*(t(ii)-0.5);
S(ii)=S0+a*0.5+0.5*a*(t(ii)-0.5)^2;
end
end
plot(t,V,'*r',t,S,'.b');
clear all;clc;
t=0:0.01:1;
S0=-0.25*pi;
a=2*pi;
for ii=1:length(t)
if t(ii)<=0.5
V(ii)=a*t(ii);
S(ii)=S0+0.5*a*t(ii)^2;
elseif t(ii)>0.5
V(ii)=a*(t(ii)-0.5);
S(ii)=S0+a*0.5+0.5*a*(t(ii)-0.5)^2;
end
end
plot(t,V,'*r',t,S,'.b');
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询