数组中无法解释的额外条目

时间:2012-09-07 13:12:18

标签: matlab

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

代码是这样的

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

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

1 个答案:

答案 0 :(得分: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];

AB必须都是x1x2的标量。您的结果是1x3,因为您的某个变量因为AB是1x2。这是x0vthetaty0g不是标量而是{{1}的结果矢量。

我怀疑1x2gx0是罪魁祸首,因为这些变量对于单个方程是唯一的。所以我首先检查这些值的大小。但是,如果不知道变量的值,我无法确定。