在求和之后,将1xn + 1xn矩阵重塑为对称

时间:2018-01-24 03:31:56

标签: r matrix symmetric

我有两个尺寸为1x5的矩阵,我想在进行c = a+b操作然后添加diag(c) <- 1

之后将它们重新整形为对称的5x5矩阵

让我们举个例子:

a <- matrix(seq(1,5), byrow = T)
b <- matrix(seq(1,5), byrow = T)

我正在寻找的结果是:

1 3 4 5 6
3 1 5 6 7
4 5 1 7 8
5 6 7 1 9
6 7 8 9 1

请帮助,并提前感谢

1 个答案:

答案 0 :(得分:2)

我们可以使用outer执行sum,然后将对角元素分配给1

out <- outer(a[,1], b[,1], FUN = `+`)
diag(out) <- 1
out
#     [,1] [,2] [,3] [,4] [,5]
#[1,]    1    3    4    5    6
#[2,]    3    1    5    6    7
#[3,]    4    5    1    7    8
#[4,]    5    6    7    1    9
#[5,]    6    7    8    9    1