更改矩阵尺寸 [英] Change matrix dimension
本文介绍了更改矩阵尺寸的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
让我们做一个可复制的例子:
Let's make a replicable example:
这是我的初始矩阵
d<- matrix(1:80,,5)
d
[,1] [,2] [,3] [,4] [,5]
[1,] 1 17 33 49 65
[2,] 2 18 34 50 66
[3,] 3 19 35 51 67
[4,] 4 20 36 52 68
[5,] 5 21 37 53 69
[6,] 6 22 38 54 70
[7,] 7 23 39 55 71
[8,] 8 24 40 56 72
[9,] 9 25 41 57 73
[10,] 10 26 42 58 74
[11,] 11 27 43 59 75
[12,] 12 28 44 60 76
[13,] 13 29 45 61 77
[14,] 14 30 46 62 78
[15,] 15 31 47 63 79
[16,] 16 32 48 64 80
我想重塑矩阵,将每个列减少4并取下数字,如下所示:
I would like to reshape my matrix cutting every colomn by 4 and taking the numbers up, as follow:
new.d
[,1] [,2] [,3] [,4]
[1,] 1 5 9 13
[2,] 2 6 10 14
[3,] 3 7 11 15
[4,] 4 8 12 16
[5,] 17 21 25 29
[6,] 18 22 26 30
[7,] 19 23 27 31
[8,] 20 24 28 32
[9,] 33 37 41 45
[10,] 34 38 42 46
[11,] 35 39 43 47
[12,] 36 40 44 48
[13,] 49 53 57 61
[14,] 50 54 58 62
[15,] 51 55 59 63
[16,] 52 56 60 64
[17,] 65 69 73 77
[18,] 66 70 74 78
[19,] 67 71 75 79
[20,] 68 72 76 80
有帮助吗?谢谢
推荐答案
另一种方法:
n = 4
matrix(aperm(array(d, c(n, nrow(d)/n, ncol(d))), c(1, 3, 2)), ncol = nrow(d)/n)
这篇关于更改矩阵尺寸的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文