この行列で乱数の作成を制御したい:
Mp = floor(1+(10*rand(2,20)));
mp1 = sort(Mp,2);
このような出力を得るために、このコードを変更したい:
1 1 2 2 3 3 3 4 5 5 6 7 7 8 9 9 10 10 10 10
1 2 3 3 3 3 3 3 4 5 6 6 6 6 7 8 9 9 9 10
各行に 1 から 10 までのすべての数字を昇順で入力する必要があり、各数字の出現回数をカウントする 2 番目の行列は次のようになります。
1 2 1 2 1 2 3 1 1 2 1 1 2 1 1 2 1 2 3 4
1 1 1 2 3 4 5 6 1 1 1 2 3 4 1 1 1 2 3 1
先週から探していた最もトリッキーなマトリックスは、最初のマトリックスの各行をざっと調べて、各数値の出現回数と最後の出現位置を返す 3 番目のマトリックスです。コードがどのように機能するかの例。この例は、最初の行列の最初の行を実行した後の意図した結果を示しています。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 (positions)
1 2
2 2
3 3
4 1
5 2
6 1
7 2
8 1
9 2
10 4
(数字)
この例は、最初の行列の 2 行目を実行した後の意図した結果を示しています。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 (positions)
1 1 2
2 1 2
3 3 6
4 1 1
5 3
6 1 4
7 2 1
8 1 1
9 2 3
10 4
(数字)
したがって、必要なマトリックスは最初からゼロで埋められ、最初のマトリックスの各行を実行した後、新しい結果を前の結果に追加する必要があります...