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

如何将四个向量组合成dim=c(2,2,6)的三维数组?(R语言场景)

把四个向量组合成2x2x6三维数组的方法

嘿,这事儿不难!我给你两种常用的实现方式,你可以根据自己的习惯选:

首先先把你的初始代码放这儿,方便后续测试:

a <- 1:6; b <- seq(0.2,8,length.out = 6); set.seed(1); d <- runif(6, 0, 1); e <- rnorm(6, 0, 1)

方法一:基础循环法(适合新手理解)

先初始化一个指定维度的空数组,然后逐个填充每个2x2矩阵切片:

# 创建一个2行、2列、6个切片的空数组,初始值为NA
result_array <- array(NA, dim = c(2, 2, 6))

# 循环遍历每个索引,填充对应的矩阵
for (i in 1:6) {
  # 把a[i]、d[i]作为第一列,b[i]、e[i]作为第二列构造矩阵
  # 如果想按行填充(第一行a[i],b[i],第二行d[i],e[i]),可以加byrow=TRUE参数
  result_array[,,i] <- matrix(c(a[i], d[i], b[i], e[i]), nrow = 2)
}

方法二:用purrr包的函数式编程(更简洁)

如果你习惯用tidyverse风格的代码,可以用purrr::map生成所有矩阵的列表,再转成三维数组:

library(purrr)

# 生成包含6个2x2矩阵的列表
matrix_list <- map(1:6, ~ matrix(c(a[.x], d[.x], b[.x], e[.x]), nrow = 2))

# 将列表转换为三维数组
result_array <- simplify2array(matrix_list)

验证结果

你可以用result_array[,,1]查看第一个切片的矩阵,应该是这样的:

[,1]      [,2]
[1,] 1.0000000 0.2000000
[2,] 0.2655087 -0.6264538

完全符合你的需求——每个切片都由对应位置的a、b、d、e元素组成。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.25 07:45:54