首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将多个二维阵列转换为一个三维阵列

将多个二维阵列转换为一个三维阵列
EN

Stack Overflow用户
提问于 2020-09-16 11:57:30
回答 3查看 45关注 0票数 1

我对R很陌生,也许有一种很简单的方法可以做到这一点,但我无法在我的一生中找到这一点。我正在尝试将mutli层TIF文件转换为多通道TIF文件,为此,我需要将多个二维数组的列表转换为一个三维数组。

我试图简单地拆分列表中的9个不同的数组,创建一个具有3个维度的新列表,并将数组插入到新的列表中,但它一直告诉我“下标数量错误”。

代码语言:javascript
复制
  multiChannelFile = array(c(960, 1280, 9))
  
  for (row in 1:960) {
    for (column in 1:1280) {
      for (channel in 1:9) {
        multiChannelFile[row, column, channel] = tifFile[channel][[1]][row, column]
      }
    }
  }
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2020-09-16 12:12:26

您可以使用simplify2array()

代码语言:javascript
复制
multiChannelFile <- simplify2array(tifFile)
票数 0
EN

Stack Overflow用户

发布于 2020-09-16 12:04:13

当然,一旦我发布了这个问题,我就想出了答案。

multiChannelFile = array(c(960, 1280, 9))改为multiChannelFile = array(dim = c(960, 1280, 9))是很有意义的。

票数 0
EN

Stack Overflow用户

发布于 2020-09-16 12:13:37

您可以通过unlist()将列表混合到向量并重置维度。

代码语言:javascript
复制
array(unlist(tifFile), dim = c(dim(tifFile[[1]]), length(tifFile)))
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63919578

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档