0

xごとにrpを見つける必要がありますが、matlabでこのエラーが発生するため、苦労しています

Error in enee_408e_hw2_pb1 (line 6)
rp=(z2*cos(t2)-z1*cos(x))/(z2*cos(t2)+z1*cos(x))

ここに私のコードがあります

x=0:.01:pi/2;
n2=1.7;
t2=asin(sin(x)/n2);
z1=377*cos(x);
z2=377\cos(x);
rp=(z2*cos(t2)-z1*cos(x))/(z2*cos(t2)+z1*cos(x));

0 から pi/2 までの各角度の rp を計算してプロットしたいと思います。私は何を間違っていますか?

4

2 に答える 2

2

すべての操作は、z1 と z2 の同じセルに対して実行されます。Matlab/Ocatave は、変数の型に基づいて式を計算します。したがって、*ベクトルの間に配置すると、外積を計算しようとします。おそらく問題は\、Matlab が何をしようとしたのかわかりません。演算子を変更する前にアプローチを追加.すると、より自然になり (非数学的な人向け)、対応するセルが乗算されます。しかし、これがあなたが期待したものかどうかはまだわかりません

rp=(z2.*cos(t2)-z1.*cos(x))./(z2.*cos(t2)+z1.*cos(x));
于 2012-09-30T19:27:20.227 に答える
1

まず、なぜこの行で \ を使用しているのですか?

z2=377\cos(x);

MATLAB では \ と / に違いがあります。

MATLAB における ./ と .* と / と * の違いについて学びましょう。

要素ごとの操作が必要な場合は、演算子にドットを付けて使用します。

于 2012-09-30T19:29:49.907 に答える