如何在R中将矩阵的对角元素设置为1?

首先我们需要了解的是,对角元素仅在具有方矩阵的情况下才有用,否则设置对角元素将毫无意义,这几乎是所有数学家都知道的,但是有些新生可能会感到困惑,因为我们可以在对角元素中创建对角元素。非正方形矩阵,不应称为对角线。在R中,我们可以使用diag函数将矩阵的对角元素设置为1。

例1

> M1<-matrix(1:25,ncol=5)

> M1

输出结果

     [,1] [,2] [,3] [,4] [,5]

[1,]   1    6   11   16   21

[2,]   2    7   12   17   22

[3,]   3    8   13   18   23

[4,]   4    9   14   19   24

[5,]   5   10   15   20   25

> diag(M1)<-1

> M1

输出结果

   [,1] [,2] [,3] [,4] [,5]

[1,] 1    6   11   16   21

[2,] 2    1   12   17   22

[3,] 3    8    1   18   23

[4,] 4    9   14    1   24

[5,] 5   10   15   20    1

例2

> M2<-matrix(rpois(36,5),ncol=6)

> M2

输出结果

   [,1] [,2] [,3] [,4] [,5] [,6]

[1,] 5    4    4    5    6    5

[2,] 4    5    7    8    3    4

[3,] 4    3    6    5    5    6

[4,] 7    4    4    6    2    6

[5,] 2    5    2    4    6    6

[6,] 7    2    3    5    4    3

> diag(M2)<-1

> M2

输出结果

   [,1] [,2] [,3] [,4] [,5] [,6]

[1,] 1    4    4    5    6    5

[2,] 4    1    7    8    3    4

[3,] 4    3    1    5    5    6

[4,] 7    4    4    1    2    6

[5,] 2    5    2    4    1    6

[6,] 7    2    3    5    4    1

例子3

> M3<-matrix(rpois(64,10),ncol=8)

> M3

输出结果

[,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8]

[1,] 8 9 17 7 12 11 4 10

[2,] 8 15 8 7 13 10 13 11

[3,] 13 9 9 13 4 10 11 9

[4,] 9 9 7 10 5 13 11 5

[5,] 7 9 9 8 9 11 8 15

[6,] 12 8 10 14 15 3 4 8

[7,] 9 8 7 11 11 11 10 6

[8,] 7 12 6 11 10 6 9 7

> diag(M3)<-1

> M3

输出结果

[,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8]

[1,] 1 9 17 7 12 11 4 10

[2,] 8 1 8 7 13 10 13 11

[3,] 13 9 1 13 4 10 11 9

[4,] 9 9 7 1 5 13 11 5

[5,] 7 9 9 8 1 11 8 15

[6,] 12 8 10 14 15 1 4 8

[7,] 9 8 7 11 11 11 1 6

[8,] 7 12 6 11 10 6 9 1

例子4

> M4<-matrix(sample(1:10,100,replace=TRUE),ncol=10)

> M4

输出结果

[,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [,9] [,10]

[1,] 4 8 8 1 8 6 1 4 10 7

[2,] 4 8 3 4 8 5 10 3 10 9

[3,] 8 2 1 7 4 7 7 9 3 5

[4,] 6 2 9 2 10 2 2 2 6 4

[5,] 6 9 4 8 2 1 8 4 7 7

[6,] 2 9 7 9 1 6 10 8 7 9

[7,] 3 6 2 7 5 2 7 3 1 5

[8,] 1 6 6 10 2 7 6 2 1 9

[9,] 1 1 6 3 10 1 4 4 9 3

[10,] 7 10 3 7 10 10 4 10 1 9

> diag(M4)<-1

> M4

输出结果

    [,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [,9] [,10]

[1,]  1    8    8    1    8    6    1    4   10     7

[2,]  4    1    3    4    8    5   10    3   10     9

[3,]  8    2    1    7    4    7    7    9    3     5

[4,]  6    2    9    1   10    2    2    2    6     4  

[5,]  6    9    4    8    1    1    8    4    7     7

[6,]  2    9    7    9    1    1   10    8    7     9

[7,]  3    6    2    7    5    2    1    3    1     5

[8,]  1    6    6   10    2    7    6    1    1     9

[9,]  1    1    6    3   10    1    4    4    1     3

[10,] 7   10    3    7   10   10    4   10    1     1

范例5

> M5<-matrix(sample(0:9,25,replace=TRUE),ncol=5)

> M5

输出结果

   [,1] [,2] [,3] [,4] [,5]

[1,] 6    6    9    9    0

[2,] 2    4    3    9    7

[3,] 1    7    8    3    8

[4,] 9    5    0    4    6

[5,] 9    7    0    1    3

> diag(M5)<-1

> M5

输出结果

   [,1] [,2] [,3] [,4] [,5]

[1,] 1    6    9    9    0

[2,] 2    1    3    9    7

[3,] 1    7    1    3    8

[4,] 9    5    0    1    6

[5,] 9    7    0    1    1

以上是 如何在R中将矩阵的对角元素设置为1? 的全部内容, 来源链接: utcz.com/z/362186.html

回到顶部