这个语法[0:1:5]在给定代码的上下文中是什么意思?

时间:2016-03-20 21:04:07

标签: matlab syntax octave

我不明白在下面的代码中如何使用[0:1:5]

function [x , y] = plotTrajectory(Vo,O,t,g)
% calculating x and y values
x = Vo * cos(O) * t ;
y = Vo*(sin(O)*t)-(0.5*g*(t.^2));
plot (x,y);
hold on
end

for i = (0: (pi/8): pi);
[x,y] = plotTrajectory(10,i,[0:1:5],9.8);
end

1 个答案:

答案 0 :(得分:2)

每个参数都用于查找特定的XY值。 Opi为步骤,pi/8从{0}更改为Vo,而tgt保持不变。

O变量只是一个从0到5的数组,步长为1,因此共有6个时间点。使用这些时间点并使用Vo的特定值,但tgX的值在整个过程中保持不变,6 {{1 }和Y点已定义,因此绘制在图表上。为O的每个值生成图表,因此生成一组6个不同的XY点。每个值O的每个图都绘制在同一图表上。

我们可以用伪代码重写上面的代码,以便更容易理解如下:

 for i = 0, pi/8, 2*pi/8, ..., pi
     define Vo = 10
     define O = i
     define t = [0, 1, 2, 3, 4, 5]
     define g = 9.8
     run function plotTrajectory(Vo, O, t, g)
 end

 function plotTrajectory(Vo, O, t, g)
     calculate x = Vo * cos(O) * t, for t = 0, 1, 2, 3, 4, 5
     calculate y = Vo * (sin(O) * t) - (0.5 * g * t^2), for t = 0, 1, 2, 3, 4, 5
     plot x and y for t = 0, 1, 2, 3, 4, 5 on the same graph
 end