问题计算角度

时间:2015-05-26 23:11:49

标签: algorithm matlab math geometry angle

我有以下数据:

请注意,数据的规模非常小。我需要做的是计算每个点和正y轴之间的角度,然后再次执行此操作,但找到正x轴的角度。我认为正y轴是从原点到点(0,1)的矢量,而正x轴是从原点到点(1,0)的矢量。这是我到目前为止所做的: First

 for i=1:length(X)
  angles(i)=acos(dot([0,1],X(i,:))/sqrt(dot([0,1],[0,1])*dot(X(i,:),X(i,:)))).*180/pi;
  angles_2(i)=atan2d(X(i,1),X(i,2)).*180/pi;
end

X表示数据向量,其中第一列是x坐标,第二列是相应的y坐标。角度和角度_2显示了我尝试计算与正y轴的角度的两种不同方式。他们都给了我相同的答案,但我真的不确定这是否正确。我在另一个数据集上测试了这些方法: Second

您可以清楚地看到第二个数据集上的第一个点(不在原点上)远离y轴比第一个数据集中的第一个点远得多。因此,我应该在那里获得一个更大的角度,但相反,恰恰相反!

任何人都可以帮我吗?我究竟做错了什么?我真的很感激我能得到的任何帮助。

编辑 - 这是数据:

1)http://cl.ly/2z121M11473p?_ga=1.82079765.2093327149.1426657579

2)http://cl.ly/2G0F2c1V220f?_ga=1.82079765.2093327149.1426657579

1 个答案:

答案 0 :(得分:3)

为什么不在循环中使用parseInt($index)转换为笛卡儿?

关于cart2pol的参考:http://www.mathworks.com/help/matlab/ref/cart2pol.html