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

基于两个数据集生成4×4乘积矩阵的R代码实现问题

解决R中生成向量外积4×4矩阵的问题

你当前用x * y得到4×1结果的原因是:R中向量直接用*是元素对应相乘,只会把两个向量位置相同的元素相乘,输出和原向量长度一致的结果。而你需要的是两个向量的外积——让x的每个元素分别与y的所有元素相乘,生成4×4矩阵,以下是两种实现方法:

方法1:使用outer()函数(推荐)

outer()是R专门用于计算外积的函数,默认运算就是乘法,直接传入两个向量即可:

rm(list = ls())
cat("\014")  
graphics.off()

x <- c(1,2,3,4)
y <- c(5,2,1,2)

# 生成4×4外积矩阵
result_matrix <- outer(x, y)
print(result_matrix)

运行后输出的矩阵为:

[,1] [,2] [,3] [,4]
[1,]    5    2    1    2
[2,]   10    4    2    4
[3,]   15    6    3    6
[4,]   20    8    4    8

方法2:矩阵乘法实现

把向量转换为矩阵形态(列矩阵×行矩阵),用矩阵乘法运算符%*%实现:

rm(list = ls())
cat("\014")  
graphics.off()

x <- c(1,2,3,4)
y <- c(5,2,1,2)

# 将x转为4×1列矩阵,y转为1×4行矩阵
x_col <- matrix(x, ncol = 1)
y_row <- matrix(y, nrow = 1)

# 矩阵乘法生成4×4结果
result_matrix <- x_col %*% y_row
print(result_matrix)

这个方法的原理是:4×1的列矩阵与1×4的行矩阵相乘,结果维度为4×4,每个元素对应x[i] * y[j]。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.16 10:42:12