回答
要洗牌矩阵的行,你可以使用RANDPERM
shuffledArray = orderedArray(randperm(size(orderedArray,1)),:);
randperm
会产生N
随机值的列表,并且对它们进行排序,返回sort
第二输出结果。
您的解决方案运行速度比我的快2.5倍,至少在我的电脑上。 – KnowledgeBone 2011-03-26 18:44:09
这可以通过Matlab的randsample函数为矩阵行创建一个新的随机索引来完成。
matrix=matrix(randsample(1:length(matrix),length(matrix)),:);
我认为你的意思是使用'false' - 如果用替换采样,得到的矩阵将包含重复的行,而其他的则会消失。在没有替换的情况下抽样的情况下,'randsample'调用'randperm',因此它应该比直接调用'randperm'稍微慢一些。 – Jonas 2011-03-26 19:19:12
固定,谢谢乔纳斯。 – KnowledgeBone 2011-03-26 19:28:03
对于大型数据集,您可以使用自定义功能Shuffle
它使用D.E. Knuth的shuffle算法(也称为Fisher-Yates)和可爱的KISS随机数生成器(G. Marsaglia)。
在阅读answer of Jonas时,我发现读起来有点难,难以理解。在Mathworks中,我找到了类似的question,答案更易读,更易于理解。以从Mathworks公司我写了一个函数的想法:
function ret = shuffleRow(mat)
[r c] = size(mat);
shuffledRow = randperm(r);
ret = mat(shuffledRow, :);
其实它做同样的事情Jonas' answer。但我认为它更具可读性,更易于理解。
- 1. 随机化行的顺序
- 2. 半随机顺序
- 3. Python的随机顺序OrderedDict
- 4. 随机矩阵在matlab中的特殊顺序
- 5. 如何以随机顺序
- 6. Laravel:获取随机顺序
- 7. 获取随机顺序Laravel
- 8. 在列上完成排序时的行的随机顺序
- 9. iOS - NSMutableArray中对象的随机/随机顺序
- 10. 以随机的方式读取行,然后以随机顺序打印数字
- 11. 以排序顺序生成随机数
- 12. 随机顺序的可变内容
- 13. 随机显示节点的顺序?
- 14. 允许随机顺序的XSD模式
- 15. Flexslider动画后的随机顺序
- 16. 如何随机化图像的顺序?
- 17. 以随机顺序的多维数组
- 18. 更改随机Javascript的旋转顺序
- 19. MySQL的顺序是(不需要)随机顺序
- 20. Split Image随机,Matlab
- 21. jquery幻灯片放映随机随机图片顺序
- 22. 如何确保随机数量的承诺的执行顺序?
- 23. Try-catch-finally的执行顺序似乎是随机的
- 24. 引导旋转木马 - 随机顺序
- 25. 元组随机切换顺序列表
- 26. Mongoose随机文件非顺序
- 27. CakePHP分页与随机顺序?
- 28. 以随机顺序调用方法(C#)
- 29. SQL随机并按顺序复制?
- 30. 林奇顺序随机没有GUID
可能重复[如何从MATLAB中的N点随机选择k点?](http://stackoverflow.com/questions/1856141/how-do-i-randomly-select-k-points-from- n-points-in-matlab) – Jonas 2011-03-26 18:15:22
这不是关于选择,而是关于“排序”或洗牌矩阵的行 – cMinor 2011-03-26 18:16:11
其实,你是对的。这不是一个完全相同的问题。请参阅下面的答案。 – Jonas 2011-03-26 18:20:38