如何在 R 中使用向量元素创建上三角矩阵?

r programmingserver side programmingprogramming更新于 2025/4/9 17:22:17

要使用向量元素创建上三角矩阵,我们可以先创建具有适当列数和行数的矩阵,然后对该矩阵进行转置。之后,我们将下三角矩阵元素赋值为 0。

行数和列数的选择在这里起着重要作用,因此我们在选择时需要小心谨慎。

查看下面给出的示例以了解如何完成。

示例 1

以下代码片段创建一个向量 −

x1<-rpois(5,2)
x1

以下向量被创建 −

[1] 2 2 3 0 0

要使用 x1 创建上三角矩阵,请将以下代码添加到上面的代码片段中 −

x1<-rpois(5,2)
M1<-t(matrix(x1,nrow=9,ncol=5))[,1:5]
M1

输出

如果将上述所有代码片段作为单个程序执行,则会生成以下输出 −

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

将以下代码添加到上面的代码片段中 −

M1[lower.tri(M1)]<-0
M1

输出

如果将上述所有代码片段作为单个程序执行,则会生成以下输出 −

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

示例 2

以下代码片段创建一个向量 −

x2<-rpois(10,5)
x2

输出

以下向量被创建 −

[1] 5 8 5 4 3 5 5 5 11 6

要使用 x2 创建上三角矩阵,请将以下代码添加到上述代码片段中 −

x2<-rpois(10,5)
M2<-t(matrix(x2,nrow=19,ncol=10))[,1:10]
M2

输出

如果将上述所有代码片段作为单个程序执行,则会生成以下输出 −

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

将以下代码添加到上面的代码片段中 −

M2[lower.tri(M2)]<-0
M2

输出

如果将上述所有代码片段作为单个程序执行,则会生成以下输出 −

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

示例 3

以下代码片段创建一个向量 −

x3<-rpois(3,28)
x3

以下向量创建 −

[1] 21 33 24

要使用 x3 创建上三角矩阵,请将以下代码添加到上述代码片段中 −

x3<-rpois(3,28)
M3<-t(matrix(x3,nrow=5,ncol=3))[,1:3]
M3

输出

如果将上述所有代码片段作为单个程序执行,则会生成以下输出 −

    [,1] [,2] [,3]
[1,] 21  33   24
[2,] 24  21   33
[3,] 33  24   21

将以下代码添加到上面的代码片段中 −

M3[lower.tri(M3)]<-0
M3

输出

如果将上述所有代码片段作为单个程序执行,则会生成以下输出 −

    [,1] [,2] [,3]
[1,] 21   33   24
[2,] 0    21   33
[3,] 0    0    21

示例 4

以下代码片段创建一个向量 −

x4<-rpois(5,500)
x4

以下向量被创建 −

输出

[1] 495 499 478 502 531

要使用 x4 创建上三角矩阵,请将以下代码添加到上述代码片段中 −

x4<-rpois(5,500)
M4<-t(matrix(x4,nrow=9,ncol=5))[,1:5]
M4

输出

如果将上述所有代码片段作为单个程序执行,则会生成以下输出 −

    [,1] [,2] [,3] [,4] [,5]
[1,] 495 499  478  502  531
[2,] 531 495  499  478  502
[3,] 502 531  495  499  478
[4,] 478 502  531  495  499
[5,] 499 478  502  531  495

将以下代码添加到上面的代码片段中 −

M4[lower.tri(M4)]<-0
M4

输出

如果将上述所有代码片段作为单个程序执行,则会生成以下输出 −

   [,1]  [,2] [,3] [,4] [,5]
[1,] 495 499  478  502  531
[2,] 0   495  499  478  502
[3,] 0    0   495  499  478
[4,] 0    0    0   495  499
[5,] 0    0    0    0   495

示例 5

以下代码片段创建一个向量 −

x5<-rpois(10,100)
x5

以下向量创建 −

[1] 109 85 108 86 76 99 113 75 82 86

要使用 x5 创建上三角矩阵,请将以下代码添加到上述代码片段中 −

x5<-rpois(10,100)
M5<-t(matrix(x5,nrow=19,ncol=10))[,1:10]
M5

输出

如果将上述所有代码片段作为单个程序执行,则会生成以下输出 −

    [,1] [,2][,3][,4][,5][,6][,7][,8][,9][,10]
[1,] 109  85 108  86  76  99 113  75  82   86
[2,]  86 109  85 108  86  76  99 113  75   82
[3,]  82  86 109  85 108  86  76  99 113   75
[4,]  75  82  86 109  85 108  86  76  99  113
[5,] 113  75  82  86 109  85 108  86  76   99
[6,]  99 113  75  82  86 109  85 108  86   76
[7,]  76  99 113  75  82  86 109  85 108   86
[8,]  86  76  99 113  75  82  86 109  85  108
[9,] 108  86  76  99 113  75  82  86 109   85
[10,] 85 108  86  76  99 113  75  82  86  109

将以下代码添加到上面的代码片段中 −

M5[lower.tri(M5)]<-0
M5

输出

如果将上述所有代码片段作为单个程序执行,则会生成以下输出 −

     [,1][,2][,3][,4][,5][,6][,7][,8][,9][,10]
[1,] 109  85 108  86  76  99 113  75  82   86
[2,]   0 109  85 108  86  76  99 113  75   82
[3,]   0   0 109  85 108  86  76  99 113   75
[4,]   0   0   0 109  85 108  86  76  99  113
[5,]   0   0   0   0 109  85 108  86  76   99
[6,]   0   0   0   0   0 109  85 108  86   76
[7,]   0   0   0   0   0   0 109  85 108   86
[8,]   0   0   0   0   0   0   0 109  85  108
[9,]   0   0   0   0   0   0   0   0 109   85
[10,]  0   0   0   0   0   0   0   0   0  109

相关文章