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

R语言如何通过向量各元素两两相减构建指定差值矩阵

方法1:使用outer()函数(最简洁的向量化实现)

outer()是R中专门用于逐元素交叉运算的函数,刚好匹配你的需求,一行代码即可完成:

# 定义原始向量
a <- c(17.4, 17.2, 17.0, 16.9, 17.0, 17.4)
# 构建目标矩阵
A <- outer(a, a, FUN = `-`)

运算逻辑:返回的矩阵第i行第j列的值为a[i] - a[j],完全符合你要求的「每行对应向量的第i个元素减去所有向量元素」的规则。


方法2:循环实现(适合理解底层逻辑)

如果需要手动遍历实现逻辑,可以用行循环的方式写:

a <- c(17.4, 17.2, 17.0, 16.9, 17.0, 17.4)
n <- length(a)
# 初始化空矩阵
A <- matrix(NA, nrow = n, ncol = n)
# 逐行赋值
for (i in 1:n) {
  A[i, ] <- a[i] - a
}

输出验证

打印A即可得到你给出的目标结果:

[,1] [,2] [,3] [,4] [,5] [,6]
[1,]  0.0 -0.2 -0.4 -0.5 -0.4  0.0
[2,]  0.2  0.0 -0.2 -0.3 -0.2  0.2
[3,]  0.4  0.2  0.0 -0.1  0.0  0.4
[4,]  0.5  0.3  0.1  0.0  0.1  0.5
[5,]  0.4  0.2  0.0 -0.1  0.0  0.4
[6,]  0.0 -0.2 -0.4 -0.5 -0.4  0.0

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 00:15:11