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