【发布时间】:2012-10-25 05:31:17
【问题描述】:
我有一个基本矩阵mat,我希望得到一个R对象x = (mat, mat, ...),其中mat重复100次。如果这是可能的,那么我可以将x 传递给一个采用矩阵名称向量的函数。我试过rep(mat, 100),但似乎不再维护矩阵类。有什么建议么?谢谢!
更新:基本上我打算使用
grp.ids <- as.factor(c(rep(1,8), rep(2,4), rep(3,2)))
x <- model.matrix(~grp.ids)
do.call(blockMatrixDiagonal,
replicate(100, x, simplify=FALSE))
blockMatrixDiagonal 函数位于here。然后R给出一个错误:要替换的项目数不是替换长度的倍数。我真正希望通过这些编码得到的是块对角矩阵。谢谢:)
【问题讨论】:
-
(mat, mat, ..)是什么意思?你的意思是你想得到一个rowsx100*cols矩阵吗?100*rowsxcols矩阵退出?x[[1]] == mat的列表在哪里?你能举一个简单的例子(比如一个 2x3 矩阵)以及“采用矩阵名称向量的函数”是什么? (注意,矩阵名称的向量与矩阵的向量不同!(我什至不知道您所说的“矩阵向量 names”是什么意思 - 你的意思是字符串 'mat '?)) -
@mathematical.coffee:感谢 cmets!实际上,我计划使用的函数需要一个矩阵列表作为其参数,它将根据这些传递的矩阵生成一个大块对角矩阵。我希望传递给函数的是矩阵名称
mat的重复 100 次。
标签: r