Matlab 复向量的两两夹角计算

Matlab 复向量的两两夹角计算,matlab,geometry,trigonometry,complex-numbers,Matlab,Geometry,Trigonometry,Complex Numbers,我有一个复向量(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.000000

我有一个复向量(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空间中绘制的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
),然后使用
角度
获得每个元素之间的角度:

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
得到角度,单位为度。

完美!非常感谢。在任何情况下,你的结果都是
1-1.57/90
。非常类似于@Stewie Griffin答案,但你也可以使用:
ang=atand(diff(imag(cv))/diff(real(cv))