在我今天运行的教程中,出现了几次以下问题。
代码是这样的
x = [ x0 + v*cosd(theta) * t, y0 + v*sind(theta) * t + .5 *g * t^2]
但是,当您输出 x 时,它在两个计算值之前有 3 个条目为零。我不知道那是怎么发生的。我完全重新设计了相同的代码,这个问题就消失了。这可能是 MATLAB 的某种错误吗?
在我今天运行的教程中,出现了几次以下问题。
代码是这样的
x = [ x0 + v*cosd(theta) * t, y0 + v*sind(theta) * t + .5 *g * t^2]
但是,当您输出 x 时,它在两个计算值之前有 3 个条目为零。我不知道那是怎么发生的。我完全重新设计了相同的代码,这个问题就消失了。这可能是 MATLAB 的某种错误吗?
在 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,因为您的变量之一A
是B
1x2。这是x0
, v
, theta
, t
,y0
或g
不是标量而是1x2
向量的结果。
我怀疑g
,x0
或y0
, 是罪魁祸首,因为这些变量对于单个方程来说是唯一的。所以我首先检查这些值的大小。但是,在不知道变量值的情况下,我无法确定。