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

如何更高效地创建示例中的对称距离矩阵?

更简便创建该对称距离矩阵的方法

当然有更高效的方法,不用手动逐个定义列向量,以下是几种常用方案:

  • 利用outer函数(最简洁)
    这个函数可以对两个向量做元素级运算,直接生成目标矩阵:

    n <- 10  # 矩阵维度,可按需调整
    distances <- outer(0:(n-1), 0:(n-1), function(x, y) abs(x - y))
    

    原理是把0到9的序列和自身做外积,每个位置计算两个元素的绝对值差,完美匹配你手动创建的矩阵结构,而且改n就能生成任意大小的同类矩阵。

  • 借助dist函数转换
    dist函数原本用于计算样本间的距离,对于一维的数值序列,它的欧氏距离(默认)或曼哈顿距离就是元素间的绝对值差,转成矩阵即可:

    n <- 10
    distances <- as.matrix(dist(0:(n-1)))  # 默认欧氏距离,一维下等价于绝对值差
    # 或者显式指定曼哈顿距离,结果一致
    distances <- as.matrix(dist(0:(n-1), method = "manhattan"))
    
  • 循环填充矩阵(适合理解逻辑)
    先创建空矩阵,再通过循环给每一行赋值,虽然不如前两种简洁,但逻辑直观:

    n <- 10
    distances <- matrix(0, nrow = n, ncol = n)
    for (i in 1:n) {
      distances[i, ] <- abs((i-1) - 0:(n-1))
    }
    

这些方法都避免了手动编写大量重复的向量代码,尤其是矩阵规模变大时,优势会非常明显。

内容的提问来源于stack exchange,提问作者Victor Nielsen

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.20 19:05:09