我需要在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
谢谢
答案 0 :(得分:7)
如果您的数据存储在矩阵data
中,那么您可以使用randperm生成“加扰”数据,如下所示:
scrambled = data(randperm(numel(data)));
这是在没有替换的情况下对进行抽样,因此data
中的每个值都会在scrambled
中出现一次。
对于使用替换的进行抽样(data
中的值可能多次出现在scrambled
中,有些可能根本不出现),您可以使用randi
之类的这样:
scrambled = data(randi(numel(data),1,numel(data)));