假设我有一个向量v2 = c(50,30,10,5)
,我想计算它v2
与自身之间的角度(即角度应该为 0)。我使用以下代码:
norm_vec = function(x) sqrt(sum(x^2))
然后我打电话
acos( as.numeric((v2 %*% v2) / (norm_vec(v2) * norm_vec(v2))) )
但是,我收到以下警告消息,而不是 0:
Warning message:
In acos(as.numeric((v2 %*% v2)/(norm_vec(v2) * norm_vec(v2)))) :
NaNs produced
我检查了 的值,as.numeric((v2 %*% v2) / (norm_vec(v2) * norm_vec(v2)))
因为它确实是一个数字 1。我也检查acos(1)
了,结果是 0。我的代码有什么问题?谢谢!