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 回答