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

Ale*_*avi 3 matlab

我需要在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

谢谢

sho*_*zer 7

如果您的数据存储在矩阵中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)