6,796 views
この記事は最終更新から 1873日 が経過しています。
要素数 10個の配列を作る。この配列 aの中身をシャッフルしてみたい。
octave:1> a = rand(1,10) a = 0.589408 0.922543 0.080395 0.102798 0.335572 0.778895 0.139366 0.189401 0.700688 0.344026
ここでは rand関数を使って配列を生成しているが、こちらはシャッフルされる側なので、ランダムである必要はない。
次に randperm で 1から 10までの値をランダムに並べた配列を作る。
octave:2> b = randperm(10)
b =
2 6 1 5 7 3 8 4 9 10
これをインデックスとして使用し、先に作成した配列 aの要素を並び替える。
octave:3> c = a(b) c = 0.922543 0.778895 0.589408 0.335572 0.139366 0.080395 0.189401 0.102798 0.700688 0.344026