【问题标题】:R: List of Matrices with every i-th column equal to zeroR:每第 i 列为零的矩阵列表
【发布时间】:2017-05-15 19:11:15
【问题描述】:

假设我们给定了以下矩阵:

mat <- matrix(1:20,4,5)
mat
     [,1] [,2] [,3] [,4] [,5]
[1,]    1    5    9   13   17
[2,]    2    6   10   14   18
[3,]    3    7   11   15   19
[4,]    4    8   12   16   20

我想将此矩阵转换为长度等于列数的列表,这样每个第 i 列都充满了零。

即对于这种特殊情况,我想要以下内容:

list(matlist)
[[1]]
     [,1] [,2] [,3] [,4] [,5]
[1,]    0    5    9   13   17
[2,]    0    6   10   14   18
[3,]    0    7   11   15   19
[4,]    0    8   12   16   20

[[2]]
     [,1] [,2] [,3] [,4] [,5]
[1,]    1    0    9   13   17
[2,]    2    0   10   14   18
[3,]    3    0   11   15   19
[4,]    4    0   12   16   20

[[3]]
     [,1] [,2] [,3] [,4] [,5]
[1,]    1    5    0   13   17
[2,]    2    6    0   14   18
[3,]    3    7    0   15   19
[4,]    4    8    0   16   20

[[4]]
     [,1] [,2] [,3] [,4] [,5]
[1,]    1    5    9    0   17
[2,]    2    6   10    0   18
[3,]    3    7   11    0   19
[4,]    4    8   12    0   20

[[5]]
     [,1] [,2] [,3] [,4] [,5]
[1,]    1    5    9   13    0
[2,]    2    6   10   14    0
[3,]    3    7   11   15    0
[4,]    4    8   12   16    0

对于大型矩阵,我有什么想法可以做到这一点吗?

【问题讨论】:

    标签: r matrix


    【解决方案1】:

    你可以这样做:

    lapply(seq_len(ncol(mat)), function(j) {mat[,j] = 0; mat})
    
    [[1]]
         [,1] [,2] [,3] [,4] [,5]
    [1,]    0    5    9   13   17
    [2,]    0    6   10   14   18
    [3,]    0    7   11   15   19
    [4,]    0    8   12   16   20
    
    [[2]]
         [,1] [,2] [,3] [,4] [,5]
    [1,]    1    0    9   13   17
    [2,]    2    0   10   14   18
    [3,]    3    0   11   15   19
    [4,]    4    0   12   16   20
    
    [[3]]
         [,1] [,2] [,3] [,4] [,5]
    [1,]    1    5    0   13   17
    [2,]    2    6    0   14   18
    [3,]    3    7    0   15   19
    [4,]    4    8    0   16   20
    
    [[4]]
         [,1] [,2] [,3] [,4] [,5]
    [1,]    1    5    9    0   17
    [2,]    2    6   10    0   18
    [3,]    3    7   11    0   19
    [4,]    4    8   12    0   20
    
    [[5]]
         [,1] [,2] [,3] [,4] [,5]
    [1,]    1    5    9   13    0
    [2,]    2    6   10   14    0
    [3,]    3    7   11   15    0
    [4,]    4    8   12   16    0
    

    【讨论】:

      猜你喜欢
      • 2020-09-20
      • 1970-01-01
      • 2015-05-06
      • 2019-01-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-01-27
      • 2014-09-30
      相关资源
      最近更新 更多