今日実行していたチュートリアルで、次の問題が数回発生しました。
コードはこんな感じでした
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したがって、これらの値のサイズを確認することから始めます。ただし、変数の値を知らなければ、確信が持てません。