0

在我今天运行的教程中,出现了几次以下问题。

代码是这样的

x = [ x0 + v*cosd(theta) * t, y0 + v*sind(theta) * t + .5 *g * t^2]

但是,当您输出 x 时,它在两个计算值之前有 3 个条目为零。我不知道那是怎么发生的。我完全重新设计了相同的代码,这个问题就消失了。这可能是 MATLAB 的某种错误吗?

4

1 回答 1

2

在 matlab 中,如果将向量与标量组合,则结果值为向量。例如:

a = 1;
b = [1, 2];
c = a+b; % returns [2, 3];

因此,让我们分解您的方程式:

 x = [ x0 + v*cosd(theta) * t, y0 + v*sind(theta) * t + .5 *g * t^2]

进入:

A = x0 + v*cosd(theta) * t;
B = y0 + v*sind(theta) * t + .5 *g * t^2;
x = [ A, B];

A并且B必须都是标量x才能成为1x2。您的结果是 1x3,因为您的变量之一AB1x2。这是x0, v, theta, t,y0g不是标量而是1x2向量的结果。

我怀疑g,x0y0, 是罪魁祸首,因为这些变量对于单个方程来说是唯一的。所以我首先检查这些值的大小。但是,在不知道变量值的情况下,我无法确定。

于 2012-09-07T14:44:42.627 回答