首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从R中有重叠列的原始矩阵生成较大的矩阵

从R中有重叠列的原始矩阵生成较大的矩阵
EN

Stack Overflow用户
提问于 2014-05-27 09:26:41
回答 2查看 160关注 0票数 2

假设我们有一个5*5 (25个元素)的矩阵

代码语言:javascript
复制
m<-matrix(1:25,5,5)
> m
     [,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

我想从矩阵“m”生成不同尺寸的大矩阵,例如5*8,现在我的新矩阵的第二列必须与第一列重叠,以此类推。

因此,较大的维数(例如,g,5*8)矩阵应该是这样的:(这只是一个例子,不确定移位量是否正确)。

代码语言:javascript
复制
      [,1] [,2] [,3] [,4] ……………………[,8]
[1,]    1    4   7    10 …………………… 19
[2,]    2    5   8    11 …………………… 20  
[3,]    3    6   9    12 …………………… 21  
[4,]    4    7   10   13 …………………… 22 
[5,]    5    8   11   14 …………………… 23   

事实上,在每一列中,为了防止到达原始矩阵的最后一个元素并产生NA值,我们将返回到最后一列的一些元素。请有人知道如何创建这么大的矩阵吗?

对我来说最困难的部分是计算与较大矩阵的大小有关的移位值的数量。较大的矩阵必须涵盖原始矩阵的几乎所有元素。(错过一些最后的元素是可以的)谢谢

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-05-30 02:56:32

覆盖范围的最大效率是:(重叠的最佳值)

代码语言:javascript
复制
> overlap<-ceiling(rows*(1-length(dna1)/(cols*rows)))+round(rows/cols)
票数 0
EN

Stack Overflow用户

发布于 2014-05-27 10:50:56

我不知道你想要什么,但这可能会有帮助。

代码语言:javascript
复制
rows <- 5
cols <- 8
overlap <- 1
matrix(rep(seq(1,cols)*(rows-overlap),each=rows)+seq(1,rows)-(rows-overlap),nrow=rows)
     [,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8]
[1,]    1    5    9   13   17   21   25   29
[2,]    2    6   10   14   18   22   26   30
[3,]    3    7   11   15   19   23   27   31
[4,]    4    8   12   16   20   24   28   32
[5,]    5    9   13   17   21   25   29   33
overlap <- 2
matrix(rep(seq(1,cols)*(rows-overlap),each=rows)+seq(1,rows)-(rows-overlap),nrow=rows)
     [,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8]
[1,]    1    4    7   10   13   16   19   22
[2,]    2    5    8   11   14   17   20   23
[3,]    3    6    9   12   15   18   21   24
[4,]    4    7   10   13   16   19   22   25
[5,]    5    8   11   14   17   20   23   26
overlap <- 3
matrix(rep(seq(1,cols)*(rows-overlap),each=rows)+seq(1,rows)-(rows-overlap),nrow=rows)
     [,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8]
[1,]    1    3    5    7    9   11   13   15
[2,]    2    4    6    8   10   12   14   16
[3,]    3    5    7    9   11   13   15   17
[4,]    4    6    8   10   12   14   16   18
[5,]    5    7    9   11   13   15   17   19
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23885726

复制
相关文章

相似问题

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