行的随机顺序Matlab

假设我们有一个大小为100×3的matrix

你将如何洗牌MATLAB中的行?

要混洗matrix的行,可以使用RANDPERM

shuffledArray = orderedArray(randperm(size(orderedArray,1)),:); 

randperm将生成一个N随机值的列表并对它们进行sorting,返回sorting的第二个输出作为结果。

这可以通过Matlab的randsample函数为matrix行创build一个新的随机索引来完成。

 matrix=matrix(randsample(1:length(matrix),length(matrix)),:); 

对于大型数据集,您可以使用自定义Shufflefunction

它使用DE Knuth的shufflealgorithm(也称为Fisher-Yates)和可爱的KISS随机数生成器(G. Marsaglia)。