matlab で nx1 行列の値をランダムにスクランブルする必要があります。これを効率的に行う方法がわかりません。n > 40,000 の場合は何度も行う必要があります。
例
前のマトリックス:
1 2 2 2 3 4 5 5 4 3 2 1
スクランブル:
3 5 2 1 2 2 3 4 1 4 5 2
ありがとうございました
matlab で nx1 行列の値をランダムにスクランブルする必要があります。これを効率的に行う方法がわかりません。n > 40,000 の場合は何度も行う必要があります。
例
前のマトリックス:
1 2 2 2 3 4 5 5 4 3 2 1
スクランブル:
3 5 2 1 2 2 3 4 1 4 5 2
ありがとうございました
データが matrix に格納されている場合、次のようにrandpermdata
を使用して「スクランブル」データを生成できます。
scrambled = data(randperm(numel(data)));
これは置換なしのサンプリングであるため、 のすべての値data
が に 1 回表示されscrambled
ます。
置換を伴うサンプリング(の値は複数回data
表示される場合がscrambled
あり、一部はまったく表示されない場合があります) の場合、次のように使用できますrandi
。
scrambled = data(randi(numel(data),1,numel(data)));