我需要在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
谢谢你
我需要在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
谢谢你
如果您的数据存储在 matrix 中,那么您可以使用randpermdata
生成“加扰”数据,如下所示:
scrambled = data(randperm(numel(data)));
这是无放回抽样,因此 中的每个值data
都会在 中出现一次scrambled
。
对于带替换的采样(中的值data
可能出现scrambled
多次,有些可能根本不出现),您可以这样使用randi
:
scrambled = data(randi(numel(data),1,numel(data)));