R 如何用置换法求三角矩阵

R 如何用置换法求三角矩阵,r,matrix,R,Matrix,我有一个正方形矩阵,我知道它可以通过排列变成三角形矩阵,得到三角形矩阵的矩阵::函数调用是什么 因此,我将B作为 B <- matrix(c(0,5,6,1,2,3,0,0,9),3,3) 你可以试试看 B[, order(sapply(1:ncol(B), function(x) rle(B[,x]==0)$lengths[1]*rle(B[,x]==0)$values[1]))] # [,1] [,2] [,3] #[1,] 1 0 0 #[2,] 2

我有一个正方形矩阵,我知道它可以通过排列变成三角形矩阵,得到三角形矩阵的矩阵::函数调用是什么

因此,我将B作为

B <- matrix(c(0,5,6,1,2,3,0,0,9),3,3)
你可以试试看

B[, order(sapply(1:ncol(B), function(x) rle(B[,x]==0)$lengths[1]*rle(B[,x]==0)$values[1]))]
#     [,1] [,2] [,3]
#[1,]    1    0    0
#[2,]    2    5    0
#[3,]    3    6    9

根据连续零点数(从上排向下计数),对矩阵的列进行排序,以零的最短序列为先。

可以包括一些输入和预期输出(您可能需要考虑在可重复的示例上读取),请提供
B[, order(sapply(1:ncol(B), function(x) rle(B[,x]==0)$lengths[1]*rle(B[,x]==0)$values[1]))]
#     [,1] [,2] [,3]
#[1,]    1    0    0
#[2,]    2    5    0
#[3,]    3    6    9