Anu*_*Anu 3 r symmetric matrix
我有一个矩阵如下;
1 2 3 4 5
1 0 1 1 0 0
2 0 0 1 1 0
3 1 0 0 0 1
4 0 0 1 0 0
5 0 1 0 0 0
Run Code Online (Sandbox Code Playgroud)
我需要得到对称矩阵如下,对角线0;
1 2 3 4 5
1 0 1 1 0 0
2 1 0 1 1 1
3 1 1 0 1 1
4 0 1 1 0 0
5 0 1 1 0 0
Run Code Online (Sandbox Code Playgroud)
我用for循环尝试了它,当矩阵的大小很小时它很好.但对于大尺寸,需要时间.在R中有没有有效的方法呢?
编辑:第一行在第二和第三列中有1,第一行在第三行中有1.但是对称的第一列也需要在第二行中有1个.类似地,每个行和列应该考虑1来维持对称矩阵.
使用逻辑运算
sym_mat <- (mat | t(mat)) * 1
Run Code Online (Sandbox Code Playgroud)
@ chinsoon12的建议很不错.
sym_mat <- +(mat | t(mat))
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
188 次 |
| 最近记录: |