我需要在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
谢谢
如果您的数据存储在矩阵中data
,那么您可以使用randperm生成"乱码"数据,如下所示:
scrambled = data(randperm(numel(data)));
Run Code Online (Sandbox Code Playgroud)
这是在没有替换的情况下进行采样,因此每个值data
都会出现一次scrambled
.
对于采样与(中值替代data
可能出现在scrambled
多次和一些可能不会出现在所有),你可以使用randi
这样的:
scrambled = data(randi(numel(data),1,numel(data)));
Run Code Online (Sandbox Code Playgroud)