将列向量转换为 R 中矩阵的对角线?
Convert column vector to the diagonal of a matrix in R?
我在 R 中有一个具有以下格式的列向量:num [1:2464, 1]。
我想对角化向量,所以每个元素都在矩阵的对角线上。我试过以下代码:
diagvector <- diag(myvector)
但是它只显示第一个数字。我想我只能在我的向量具有以下形式时使用该代码:num [1:2464].
那么我该如何 a) 将我的向量的格式从 num [1:2464, 1] 更改为 num [1:2464],或者 b) 使用格式 num [1: 2464, 1]?
您的 "column vector" 实际上是一个矩阵,因为它有两个维度,但是 it can be formed into a vector.
myvector <- matrix(1:2464, 1)
diagvector <- diag(c(myvector))
diagvector
[,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [,9] [,10] [,11] [,12] [,13] ...
[1,] 1 0 0 0 0 0 0 0 0 0 0 0 0
[2,] 0 2 0 0 0 0 0 0 0 0 0 0 0
[3,] 0 0 3 0 0 0 0 0 0 0 0 0 0
[4,] 0 0 0 4 0 0 0 0 0 0 0 0 0
[5,] 0 0 0 0 5 0 0 0 0 0 0 0 0
[6,] 0 0 0 0 0 6 0 0 0 0 0 0 0
[7,] 0 0 0 0 0 0 7 0 0 0 0 0 0
[8,] 0 0 0 0 0 0 0 8 0 0 0 0 0
[9,] 0 0 0 0 0 0 0 0 9 0 0 0 0
[10,] 0 0 0 0 0 0 0 0 0 10 0 0 0
[11,] 0 0 0 0 0 0 0 0 0 0 11 0 0
[12,] 0 0 0 0 0 0 0 0 0 0 0 12 0
[13,] 0 0 0 0 0 0 0 0 0 0 0 0 13
...
或者:
myvector <- matrix(1:2464, 1)
diagvector <- diag(length(myvector)) * c(myvector)
diagvector
我在 R 中有一个具有以下格式的列向量:num [1:2464, 1]。
我想对角化向量,所以每个元素都在矩阵的对角线上。我试过以下代码:
diagvector <- diag(myvector)
但是它只显示第一个数字。我想我只能在我的向量具有以下形式时使用该代码:num [1:2464].
那么我该如何 a) 将我的向量的格式从 num [1:2464, 1] 更改为 num [1:2464],或者 b) 使用格式 num [1: 2464, 1]?
您的 "column vector" 实际上是一个矩阵,因为它有两个维度,但是 it can be formed into a vector.
myvector <- matrix(1:2464, 1)
diagvector <- diag(c(myvector))
diagvector
[,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [,9] [,10] [,11] [,12] [,13] ...
[1,] 1 0 0 0 0 0 0 0 0 0 0 0 0
[2,] 0 2 0 0 0 0 0 0 0 0 0 0 0
[3,] 0 0 3 0 0 0 0 0 0 0 0 0 0
[4,] 0 0 0 4 0 0 0 0 0 0 0 0 0
[5,] 0 0 0 0 5 0 0 0 0 0 0 0 0
[6,] 0 0 0 0 0 6 0 0 0 0 0 0 0
[7,] 0 0 0 0 0 0 7 0 0 0 0 0 0
[8,] 0 0 0 0 0 0 0 8 0 0 0 0 0
[9,] 0 0 0 0 0 0 0 0 9 0 0 0 0
[10,] 0 0 0 0 0 0 0 0 0 10 0 0 0
[11,] 0 0 0 0 0 0 0 0 0 0 11 0 0
[12,] 0 0 0 0 0 0 0 0 0 0 0 12 0
[13,] 0 0 0 0 0 0 0 0 0 0 0 0 13
...
或者:
myvector <- matrix(1:2464, 1)
diagvector <- diag(length(myvector)) * c(myvector)
diagvector