在matlab中有效地加扰nx1矩阵?

时间:2013-01-08 20:53:07

标签: matlab

我需要在matlab中随机加扰nx1矩阵的值。我不确定如何有效地做到这一点,我需要多次为n>做这件事。 40000

实施例

Matrix之前:

1 2 2 2 3 4 5 5 4 3 2 1

加扰:

3 5 2 1 2 2 3 4 1 4 5 2

谢谢

1 个答案:

答案 0 :(得分:7)

如果您的数据存储在矩阵data中,那么您可以使用randperm生成“加扰”数据,如下所示:

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

这是在没有替换的情况下对进行抽样,因此data中的每个值都会在scrambled中出现一次。

对于使用替换的进行抽样(data中的值可能多次出现在scrambled中,有些可能根本不出现),您可以使用randi之类的这样:

scrambled = data(randi(numel(data),1,numel(data)));