【发布时间】:2019-06-06 08:44:51
【问题描述】:
在比较两个向量时,计算它们之间的角度很简单,但在 R 中,要有效地计算向量和向量矩阵之间的角度显然要困难得多。
假设您有一个二维向量 A=(2, 0),然后是一个矩阵 B={(1,3), (-2,4), (-3,-3), (1,-4) }。我有兴趣找出 A 和 B 中的向量之间的最小角度。 如果我尝试使用
min(acos( sum(a%*%b) / ( sqrt(sum(a %*% a)) * sqrt(sum(b %*% b)) ) ))
它失败了,因为它们是不一致的参数。
有没有类似上面的代码可以处理向量和矩阵?
注意:有被标记为重复的风险,在几个sources 中找到的解决方案不适用于这种情况
编辑:原因是我有一个大矩阵X,而A 只是其中的一行。我仅根据每个向量的角度来减少元素的数量。 B的第一个元素是X中的第一个,然后如果B中的任意一个元素与下一个元素X[,2](这里是A)的夹角大于一定的公差,这个就加到列表B。我只是使用B<-rbind(B,X[,2]) 来做这件事,所以这导致B 是一个矩阵。
【问题讨论】:
-
B是列表还是矩阵?我想是一个列表。 -
技术上是一个列表,但我的 R 不是很好,所以它的类型为“矩阵”
-
如
B=list(c(1,3), c(-2,4), c(-3,-3), c(1,-4))? -
我添加了一个解释如何创建
B的编辑来回答这个问题 -
您应该添加一个数字示例,在其中显示两个输入和预期输出,这将有助于回答。
标签: r trigonometry