2016-05-15 92 views
2

我想绘制了不同角度如何绘制不同角度的数字在MATLAB

v=10; 
teta=20; % angle of the projectile motion 
vx=v*cos(teta); % velocity in x axis 
vy=v*sin(teta); % velocity in y axis 
x=0:20; 
y=zeros(size(x)); 

y=vy.*(x./vx)-(0.5*9.81*(x./vx).^2); % here I calculate the height of the ball in y axis 
plot(x,y) 
set(gca,'ylim',[0,5]) 

我怎样才能改变THETA每次绘制THETA在同积20和40度和60度的曲线?

谢谢

回答

3

有几种方法可以实现你所需要的。我已经写下来下面其中的一个:

  • 为THETA
  • 创建所有期望的值的阵列生成用于每个THETA Vx和Vy。注意:您使用THETA度,然而正弦和余弦函数接受弧度输入,所以你需要事先做转换。
  • 在for循环中生成Y的每个THETA值的值。
  • 叠加的结果。

的代码如下:

v=10; 
teta=[20 40 60]; % angle of the projectile motion 
vx=v*cos(pi*teta/180); % velocity in x axis 
vy=v*sin(pi*teta/180); % velocity in y axis 
x=0:20; 
y=zeros(size(x)); 
for i=1:length(vx) 
    y(i,:)=vy(i).*(x./vx(i))-(0.5*9.81*(x./vx(i)).^2); % here I calculate the height of the ball in y axis 
end 
plot(x,y) 
set(gca,'ylim',[0,5]) 

这会产生一个阴谋,如下图所示: matlab plot for 3 theta values

这是你走了一个非常基本的解决方案。

希望有帮助!

+0

感谢你为什么在'VX = V * COS(PI * TETA/180)除以180峰;'你的意思是值必须是弧度,而不是在成绩 – Joe

+0

是。这只是将角度从度数转换为弧度的一种简单方法。所以你可以输入角度度数,这将被转换为cos和正弦的弧度。 – SivamPillai

+0

或者,您可以使用以度为余弦的cosd。 COSD - http://www.mathworks.com/help/matlab/ref/cosd.html,COS - http://www.mathworks.com/help/matlab/ref/cos.html – SivamPillai