0

今日実行していたチュートリアルで、次の問題が数回発生しました。

コードはこんな感じでした

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

ただし、x を出力すると、2 つの計算値の前に 0 を持つ 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は両方ともスカラーでなければなりませx1x2Aまたはが 1x2であるため、変数の 1 つであるため、結果は 1x3 ですB。これは、x0vthetaty0またはgがスカラーではなく1x2ベクトルであることの結果です。

これらの変数は単一の方程式に固有であるため、gx0、またはが原因ではないかと思います。y0したがって、これらの値のサイズを確認することから始めます。ただし、変数の値を知らなければ、確信が持てません。

于 2012-09-07T14:44:42.627 に答える