复向量成对角计算

Pairwise Angle Calculation of Complex Vector

我有一个复向量 (cv) 如下:

743.000000000000 + 1150.00000000000i
744.000000000000 + 1147.00000000000i
745.000000000000 + 1146.00000000000i
746.000000000000 + 1144.00000000000i
748.000000000000 + 1145.00000000000i
751.000000000000 + 1145.00000000000i
756.000000000000 + 1145.00000000000i
760.000000000000 + 1144.00000000000i
765.000000000000 + 1144.00000000000i
769.000000000000 + 1143.00000000000i
773.000000000000 + 1142.00000000000i
776.000000000000 + 1142.00000000000i
778.000000000000 + 1142.00000000000i
780.000000000000 + 1141.00000000000i
781.000000000000 + 1141.00000000000i

这些是以 2D space 绘制的 XY 坐标,我想计算向量中每个连续元素之间的成对角度,例如元素 1 和元素 2 之间、元素 2 和元素 3 之间的角度等。我尝试用 atan2(imag(cv),real(cv)) 和 angle(cv) 计算它,但是我获得的弧度值没有看起来是正确的,因为它们应该更接近 1.57/90 度:

0.997176848026074
0.995371676259612
0.994359765918558
0.992947720321641
0.992122189213936
0.990288012755825
0.987240833611188
0.984409230727208
0.981383002699897
0.978565844271060
0.975754418763486
0.973955062297999
0.972757930118131
0.971154674293130
0.970557623825132

如何最好地计算这些坐标之间的成对角度?

在此先感谢您!

根据你的描述,你想要第1行和第2行、第2行和第3行之间的角度等等。为此,您可以计算每行之间的差异 (diff),然后使用 angle 获取每个元素之间的角度:

cv_diff = diff(cv);
cv_diff_angle = angle(cv_diff)*180/pi
cv_diff_angle =

  -71.56505
  -45.00000
  -63.43495
   26.56505
    0.00000
    0.00000
  -14.03624
    0.00000
  -14.03624
  -14.03624
    0.00000
    0.00000
  -26.56505
    0.00000

根据您的数据散点图手动检查,这似乎是正确的。请注意,我乘以 180/pi 以获得以度为单位的角度。