0

配列には 1 行に 2 進数が含まれます。1 行は 1 つの 2 進数を意味します。それらは順不同なので、昇順で並べ替えることができるコマンドを見つけようとしていますが、どうすればよいですか?

入力

>> [1 0 0 1 1; 0 0 1 0 0; 1 0 1 0 0]

ans =

     1     0     0     1     1
     0     0     1     0     0
     1     0     1     0     0
     0     0     0     0     1

目標:以下の出力を入力して取得できるコマンドはどれですか?

     0     0     0     0     1
     0     0     1     0     0
     1     0     0     1     1
     1     0     1     0     0
4

3 に答える 3

1

ビーカーはコメントで「列nから1までのソート行を使用して基数ソートを実行できるはずです」と答えました。--そしてそれはうまくいきます!その後、Luis Mendo は元の位置を保存する方法を持っていたので、アイデアをまとめました。

>> A=[1 0 0 1 1; 0 0 1 0 0; 1 0 1 0 0;0 0 0 0 1]
[vv ii]=sortrows(A)

A =

     1     0     0     1     1
     0     0     1     0     0
     1     0     1     0     0
     0     0     0     0     1


vv =

     0     0     0     0     1
     0     0     1     0     0
     1     0     0     1     1
     1     0     1     0     0


ii =

     4
     2
     1
     3
于 2013-10-26T15:53:28.683 に答える