【问题标题】:Converting a vector into a matrix R [closed]将向量转换为矩阵 R [关闭]
【发布时间】:2014-05-30 14:36:41
【问题描述】:

我有一个大小为 n 的向量 vec 和一个充满 0 的矩阵 m IxI(矩阵)。我想用向量 vec 的前 I 个条目替换矩阵的第一列,然后用 vec 的条目 I+1 到 2I-1 替换矩阵 m 的第二列的前 I-1 个条目,然后矩阵 m 的第三列的前 I-3 个条目由 vec 的条目 2I 到 3I-2 组成,依此类推。在 R 中有没有一种快速的方法? 谢谢!

【问题讨论】:

    标签: r vector matrix


    【解决方案1】:

    也许将来我们可以有一个reproducible example

    这似乎与您上面的口头描述相符:

    n <- 5
    m <- matrix(0,n,n)
    m[((n+1)-col(m))>=row(m)] <- 1:(n*(n+1)/2)
    m
    ##      [,1] [,2] [,3] [,4] [,5]
    ## [1,]    1    6   10   13   15
    ## [2,]    2    7   11   14    0
    ## [3,]    3    8   12    0    0
    ## [4,]    4    9    0    0    0
    ## [5,]    5    0    0    0    0
    

    ?lower.tri 也很有用,但我认为它没有指定您想要的组件。

    【讨论】:

    • 是的,长度匹配。 n= prod_{i=1}^{I}i
    • 它几乎可以工作,只是它不是取一列的第一个条目,而是取一列的最后一个条目
    • 哎呀它是 n= sum_{i=1}^{I}i
    • 好吧,去吧! m[(col(m)+row(m))
    猜你喜欢
    • 2015-09-15
    • 2017-06-10
    • 2018-07-17
    • 2013-01-14
    • 2021-04-29
    • 2010-12-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多