更改矩阵尺寸 [英] Change matrix dimension

查看:117
本文介绍了更改矩阵尺寸的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

让我们做一个可复制的例子:

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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆