【问题标题】:Transformation from vector to adjacent diagonal matrices从向量到相邻对角矩阵的变换
【发布时间】:2014-10-01 13:09:35
【问题描述】:

如何转换

xm<-matrix(c(.1,.2,1),ncol=1)

nd_ylwij
     [,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [,9]
[1,]  0.1  0.0  0.0  0.2  0.0  0.0    1    0    0
[2,]  0.0  0.1  0.0  0.0  0.2  0.0    0    1    0
[3,]  0.0  0.0  0.1  0.0  0.0  0.2    0    0    1

这不起作用,我不知道为什么

lapply(as.list(xm),diag)

【问题讨论】:

    标签: r matrix vector


    【解决方案1】:

    你可以这样做:

    do.call(cbind, lapply(xm, `*`, diag(length(xm))))
    

    【讨论】:

    • 是的,这行得通。我是菜鸟。你能告诉我那个命令行的叙述吗?我的解释是 xm[i] * diag(length(xm)) 的列绑定。对吗?
    • do.call(cbind, lapply(xm , diag, length(xm)))
    • 当然,lapply 获取每个元素并将其(* 是乘法函数)与 3×3 单位矩阵 (diag(length(xm))) 相乘,返回一个矩阵列表。 do.call(cbind, ...) 将它们并排放入一个宽矩阵中。
    猜你喜欢
    • 2019-04-14
    • 2011-01-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多