x(1) 在 matlab 中是什么意思?
What does x(1) mean in matlab?
我是 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" 是变量
x(1) = 0
和 y(1) = 0
与在 Python 中初始化列表/数组非常相似,其中 x
和 y
是列表变量,第一个位置为 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)
。现在这个方程的起源实际上来自使用牛顿物理学计算 body 质量的位移 - 实际上是运动学方程。因此 vx
是 body 质量的速度,而 a
是加速度。 t
将是您正在考虑的时间点。具体来说,位移可以这样计算:
来源:The Physics Classroom - Kinematic Equations
查看左上角的等式,因为这是语句在代码中所做的。这只计算一个时间点的位移。因此,您所做的是将此 body 质量在某个固定点 t
遇到的位移增加一定次数。 x
捕获从头到尾的 总 位移。之后的下一条语句只是递增循环计数器。关于 MATLAB 的事情是您可以动态扩展列表/数组/向量的长度,而 Python 或 Java 会给您一个 out-of-bounds 错误。但是,为了提高效率,建议您 应该 pre-allocate 使用适量的内存。有关详细信息,请参阅此信息 post:Efficient Array Preallocation in MATLAB。
我是 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" 是变量
x(1) = 0
和 y(1) = 0
与在 Python 中初始化列表/数组非常相似,其中 x
和 y
是列表变量,第一个位置为 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)
。现在这个方程的起源实际上来自使用牛顿物理学计算 body 质量的位移 - 实际上是运动学方程。因此 vx
是 body 质量的速度,而 a
是加速度。 t
将是您正在考虑的时间点。具体来说,位移可以这样计算:
来源:The Physics Classroom - Kinematic Equations
查看左上角的等式,因为这是语句在代码中所做的。这只计算一个时间点的位移。因此,您所做的是将此 body 质量在某个固定点 t
遇到的位移增加一定次数。 x
捕获从头到尾的 总 位移。之后的下一条语句只是递增循环计数器。关于 MATLAB 的事情是您可以动态扩展列表/数组/向量的长度,而 Python 或 Java 会给您一个 out-of-bounds 错误。但是,为了提高效率,建议您 应该 pre-allocate 使用适量的内存。有关详细信息,请参阅此信息 post:Efficient Array Preallocation in MATLAB。