今日実行していたチュートリアルで、次の問題が数回発生しました。
コードはこんな感じでした
x = [ x0 + v*cosd(theta) * t, y0 + v*sind(theta) * t + .5 *g * t^2]
ただし、x を出力すると、2 つの計算値の前に 0 を持つ 3 つのエントリがありました。それがどのように起こったのかわかりません。同じコードを正確に再スタイルすると、この問題はなくなりました。これは MATLAB の何らかのバグでしょうか?
今日実行していたチュートリアルで、次の問題が数回発生しました。
コードはこんな感じでした
x = [ x0 + v*cosd(theta) * t, y0 + v*sind(theta) * t + .5 *g * t^2]
ただし、x を出力すると、2 つの計算値の前に 0 を持つ 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
。A
またはが 1x2であるため、変数の 1 つであるため、結果は 1x3 ですB
。これは、x0
、v
、theta
、t
、y0
またはg
がスカラーではなく1x2
ベクトルであることの結果です。
これらの変数は単一の方程式に固有であるため、g
、x0
、またはが原因ではないかと思います。y0
したがって、これらの値のサイズを確認することから始めます。ただし、変数の値を知らなければ、確信が持てません。