【发布时间】:2017-04-02 03:37:28
【问题描述】:
作为较长代码的一部分,我得到一个量 phi1 和 phi2(大小为 128x128 的矩阵),它们是复数的参数。现在我在 MATLAB 中定义以下数量:
alpha=phi1-phi2;
S1=cos(alpha);
S2=sin(alpha);
K=atan2(S2,S1);
现在,K 应该等于 alpha。因此,矩阵B定义为:
B=K-alpha;
应该为零。但结果会有所不同。尽管 B 的几个元素为零,但其中很多的值为 6.2832(即 2pi)。 为什么会发生这种情况?
【问题讨论】:
-
实际上,phi1 和 phi2 是在 MATLAB 中计算的角度。因此它们的范围介于 -pi 和 pi 之间。当我评估 alpha 时,值的范围不再位于 -pi 和 pi 之间。因此, atan2 没有给出准确的 alpha 值。但问题是我想要精确的 alpha 值,因为还有另一个方程给出 beta=phi1+phi2。我的主要目标是通过从 S1 和 S2 以及 beta 方程推导出 alpha 来评估 phi1。为此,我想要准确的 alpha 值,因为它是。但无论我尝试什么,我都无法准确地检索到 alpha。谁能给点建议?
标签: matlab trigonometry inverse atan2