我正在尝试生成一种算法(最好是R中的函数),以便按如下方式通过左侧的列对任何二进制矩阵进行排序:
首先,重要的是要提到该函数只是对列进行排序。如果不移动所有列,则无法移动特定值。任何行也都移动。通过将二进制矩阵的列从左到右按该列表示的二进制数的大小进行排序(以第一行为最高有效位)来获得此功能。
示例:假设我有一个矩阵,例如$ \ begin {pmatrix} 1&0&0&1&0&1&0 \ 1&1&0&1&0&1&0 \ 0&1&1&0&1&0&0 \ 0&1&1&1&1&0&1 \ end {pmatrix} $,我想将其转换为$ \ begin {pmatrix} 1&1&1&0&0&0&0 \ 1&1&1&1&0&0&0 \ 0&0&0&1&1&1&0 \ 1&0&0&1&1&1&1 \ end {pmatrix} $
实际上,我通过将所有列都以1开头的方式对第一行进行排序。 在第2行中,在第一行的列为1的列之间,我对第一个具有1的列进行排序,并且在第一行的列为0的列之间进行相同的操作。 等到最后一行。