x(1)在matlab中是什么意思?

问题描述 投票:-4回答:1

我真的是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

matlab matlab-figure
1个回答
2
投票

x(1) = 0y(1) = 0与在Python中初始化列表/数组非常相似,其中xy是列表变量,第一个位置是1。MATLAB从1开始而不是从0开始编制索引,如Java和Python。 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将是您正在考虑的时间点。具体而言,可以如下计算位移:

来源:The Physics Classroom - Kinematic Equations

请看左上等式,因为这就是该语句在代码中所做的事情。这仅计算一个时间点的位移。因此,您要做的是添加此体重在某个固定点t上遇到的位移一定次数。 x捕获从头到尾的整体位移。之后的下一条语句只是增加循环计数器。关于MATLAB的事情是,您可以动态地扩展列表/数组/向量的长度,而Python或Java会给您带来越界错误。但是,建议您应该预分配正确的内存量,然后再使用它以提高效率。有关更多详细信息,请参见这篇信息丰富的文章:Efficient Array Preallocation in MATLAB

© www.soinside.com 2019 - 2024. All rights reserved.