x(1)在matlab中的含义是什么?

时间:2015-10-10 21:58:10

标签: matlab matlab-figure

我是matlab的新手,我需要一些帮助,我知道java和python。这是我想要理解的代码

x(1) = 0
y(1) = 0

i = 1
x(i+1)=x(i)+vx*t+.5*a*t^2;
i=i+1;

end

我想知道这里发生了什么,“vx”,“t”和“a”是变量tho

1 个答案:

答案 0 :(得分:2)

x(1) = 0y(1) = 0非常类似于在Python中初始化列表/数组,其中xy是列表变量,第一个位置是1. MATLAB启动索引为1,而不是像Java和Python中的0。 Java或Python中的类似语法是:x[0] = 0; y[0] = 0。 MATLAB使用圆括号来索引数组/向量/列表。

i = 1
x(i+1)=x(i)+vx*t+.5*a*t^2;
i=i+1;

这很简单。 i是某种循环变量或索引变量......你没有告诉我们这段代码可能是循环的一部分。代码只是将x的下一个值或数组或列表中的第二个元素设置为x(i) + vx*t + 0.5*a*t^2*运算符是乘法,^是指数运算符。在Python中,这相当于说x[i] + vx*t + 0.5*a*(t**2)。现在,这个方程的起源实际上来自于使用牛顿物理学计算体质的位移 - 实际上是运动方程。因此vx是体重的速度,a是加速度。 t将是您考虑的时间点。具体而言,位移可以如下计算:

http://www.physicsclassroom.com/Class/1DKin/U1L6a1.gif

来源:The Physics Classroom - Kinematic Equations

查看左上角的等式,因为这是语句在代码中所做的事情。这仅计算一个时间点的位移。因此,您正在做的是添加此体重在某个固定点t遇到一定次数的位移。 x从头到尾捕获排名。接下来的语句只是递增循环计数器。关于MATLAB的事情是你可以动态扩展列表/数组/向量的长度,而Python或Java会给你一个越界错误。但是,建议您 预先分配适当的内存量,然后再将其用于提高效率。有关详细信息,请参阅此信息性帖子:Efficient Array Preallocation in MATLAB