3

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

ありがとうございました

4

1 に答える 1

7

データが matrix に格納されている場合、次のようにrandpermdataを使用して「スクランブル」データを生成できます。

scrambled = data(randperm(numel(data)));

これは置換なしのサンプリングであるため、 のすべての値dataが に 1 回表示されscrambledます。

置換を伴うサンプリング(の値は複数回data表示される場合がscrambledあり、一部はまったく表示されない場合があります) の場合、次のように使用できますrandi

scrambled = data(randi(numel(data),1,numel(data)));
于 2013-01-08T21:11:07.833 に答える