You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

基于euclidean函数的moves向量点对欧氏距离计算实现问询

修正R代码实现点对生成与欧氏距离计算

需求明确

  • 从moves向量中提取无重叠的(x,y)点集合(每两个连续元素组成一个点)
  • 计算相邻点之间的欧氏距离
  • 将所有距离结果通过append()存入vector_of_pairs_distance向量

修正后的完整代码

# 定义二维欧氏距离计算函数
euclidean <- function(point1, point2) {
  sqrt((point2[1] - point1[1])^2 + (point2[2] - point1[2])^2)
}

# 示例原始moves向量(按x1,y1,x2,y2...xn,yn顺序排列)
moves <- c(3, 5, 7, 11, 13, 17, 89, 97)

# 将moves转换为(x,y)点矩阵(无重叠提取所有目标点)
points_matrix <- matrix(moves, ncol = 2, byrow = TRUE)

# 初始化存储距离的向量
vector_of_pairs_distance <- c()

# 遍历相邻点对,计算距离并追加到目标向量
for (i in 1:(nrow(points_matrix) - 1)) {
  current_dist <- euclidean(points_matrix[i, ], points_matrix[i + 1, ])
  vector_of_pairs_distance <- append(vector_of_pairs_distance, current_dist)
}

# 输出结果查看
print(vector_of_pairs_distance)

代码关键步骤说明

  1. 欧氏距离函数:实现标准的二维空间两点距离公式,参数为两个包含x、y坐标的向量,返回距离值。
  2. 点矩阵转换:利用matrix()的byrow=TRUE参数,将moves向量按每2个元素为一行拆分,直接生成所有目标(x,y)点的矩阵,确保无重叠提取。
  3. 相邻点对遍历:通过循环遍历点矩阵的相邻行(从第1行到倒数第2行),依次计算每对相邻点的距离,使用append()将结果逐个存入目标向量,完全匹配需求要求的存储方式。

示例输出

针对给出的示例moves向量,运行代码后会得到如下距离结果:

[1]  7.211103  8.485281 110.344914

内容的提问来源于stack exchange,提问作者Data Science Analytics Manager

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.05 05:05:19