【问题标题】:What does x(1) mean in matlab?x(1) 在 matlab 中是什么意思?
【发布时间】:2019-10-01 09:24:03
【问题描述】:

我真的是 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”都是变量

【问题讨论】:

  • 到目前为止,您采取了哪些措施来自己找出答案?
  • Matrix Indexing in MATLAB。您可能还想查找有关 MATLAB 的书籍或教程。
  • 这是求解/或描述坐标/时间方程的迭代尝试。 (我不记得它在英文中的确切名称 - 均匀加速度或均匀速度方程?)这样想:x 是一个列表/集合/可枚举对象。表示对象在 x 轴上的位置。索引为 1 的元素为 0(初始坐标)。下一个值是计算 x 的前一个值(上一个坐标),加上 x 轴上的速度,乘以时间(从运动开始经过的时间),再加上一半的加速度乘以时间的平方。

标签: matlab matlab-figure


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 2017-06-24
    • 1970-01-01
    • 1970-01-01
    • 2019-04-24
    • 2015-04-12
    • 2010-12-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多