r - 从已知矩阵构建 block 对角矩阵

标签 r matrix diagonal

我想通过将 B 放在 A 的对角线位置,从已知矩阵 (B) 构建块对角矩阵 (A)。

说一下我的B:

> matrix(c(1,3,4,5),nrow=2)
      [,1] [,2]
[1,]    1    4
[2,]    3    5 

我正在寻找这样的函数:function(B,3) (3 只是一个随机数)它像这样返回矩阵 A:
[1,] 1 4 . . . .
[2,] 3 5 . . . .
[3,] . . 1 4 . .
[4,] . . 3 5 . .
[5,] . . . . 1 4
[6,] . . . . 3 5

真的很感谢任何帮助

最佳答案

所需矩阵是单位矩阵与 B 的克罗内克积.没有使用包。

B <- matrix(c(1,3,4,5),nrow=2)
diag(3) %x% B

给予:
     [,1] [,2] [,3] [,4] [,5] [,6]
[1,]    1    4    0    0    0    0
[2,]    3    5    0    0    0    0
[3,]    0    0    1    4    0    0
[4,]    0    0    3    5    0    0
[5,]    0    0    0    0    1    4
[6,]    0    0    0    0    3    5

关于r - 从已知矩阵构建 block 对角矩阵,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47955114/

相关文章:

java - 使二维数组成为属性,JAVA

function - 查找表中元素的每个组合(Lua/伪代码)

JAVA : How to create a snake shape matrix

c# - 团结 : Diagonal movement not corresponding to correct key inputs

java - 在二维数组中查找数字的对角线?

r - 连接和分组两个数据表

r - 填充ggplot2 : geom_area()中折线图下的区域

C - 矩阵主线和反对角线(替换)

r - R 中的插值 : retrieving hourly values

r - 是否有 native R 语法来提取数组的行?