次の問題があります:N
整数トリプレット (つまり、N
x3
行列) の配列があり、Matlab で辞書順に並べたいと思います。そうするために、sort
私はMatlabの組み込みアルゴリズムを使用することを考えましたが、私が考えた方法が正しいかどうか、またはより簡単な方法が存在するかどうかを尋ねたいと思いました(できればMatlabルーチンを使用して)。
すべてのトリプレットを単一の数値に変換してから、これらの数値を でソートすることを考えましたsort()
。整数が 0 ~ 9 の場合は、10 進数に変換できます。ただし、それらはより大きくなります。それらの最大絶対値がである場合、次のように (+1)-ary システムM
に変換することを考えました: ( , , ) トリプレットの場合、対応する整数はです。これらの変換された整数を並べ替えることで問題は解決しますか、それとも論理的な間違いを犯していますか?M
a
b
c
a*(M+1)^2+b*(M+1)+c
ありがとうございました!
PS: Matlab には文字列の辞書編集オプションがあることは知ってsort()
いますが、整数の桁の長さは同じではありません。先頭にゼロを埋め込んで連結するとうまくいくでしょうか?