(30) 配列要素をランダムにシャッフル

投稿者: | 2014/07/01

要素数 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

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です