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

在R中使用abind()合并多维数组:将3D数组转换为指定维度

使用abind包转换3D数组维度

没问题,这事儿很简单,咱们一步步来操作:

首先,得确保你已经安装并加载了abind包——毕竟核心函数就在这儿:

# 安装包(如果还没装的话)
install.packages("abind")
# 加载包
library(abind)

接下来,先定义你提到的原数组x:

x <- array(1:50, dim = c(5, 5, 2))

它的结构正如你给出的那样:

, , 1
     [,1] [,2] [,3] [,4] [,5]
[1,]    1    6   11   16   21
[2,]    2    7   12   17   22
[3,]    3    8   13   18   23
[4,]    4    9   14   19   24
[5,]    5   10   15   20   25
, , 2
     [,1] [,2] [,3] [,4] [,5]
[1,]   26   31   36   41   46
[2,]   27   32   37   42   47
[3,]   28   33   38   43   48
[4,]   29   34   39   44   49
[5,]   30   35   40   45   50

现在要把它转换成c(10, 5, 1)的维度,只需要用abind()函数指定**沿着第一个维度(行)**合并即可,参数用along = 1:

# 执行合并转换
result <- abind(x, along = 1)
# 检查维度
dim(result)
# 输出: [1] 10  5  1

最终得到的数组结构就是你想要的样子:

, , 1
      [,1] [,2] [,3] [,4] [,5]
 [1,]    1    6   11   16   21
 [2,]    2    7   12   17   22
 [3,]    3    8   13   18   23
 [4,]    4    9   14   19   24
 [5,]    5   10   15   20   25
 [6,]   26   31   36   41   46
 [7,]   27   32   37   42   47
 [8,]   28   33   38   43   48
 [9,]   29   34   39   44   49
[10,]   30   35   40   45   50

简单解释下:along = 1的作用是把原数组第三个维度里的两个5×5矩阵,按行的方向上下拼接,这样行数从5变成10,列数保持5,第三个维度自然就只剩1个切片啦。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.26 09:33:02