Matlab 行的随机顺序
假设我们有一个大小为 100x3 的矩阵,
您将如何在 MATLAB 中打乱行?
Say we have a matrix of size 100x3
How would you shuffle the rows in MATLAB?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
假设我们有一个大小为 100x3 的矩阵,
您将如何在 MATLAB 中打乱行?
Say we have a matrix of size 100x3
How would you shuffle the rows in MATLAB?
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
接受
或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
发布评论
评论(4)
要打乱矩阵的行,您可以使用 RANDPERM
randperm
将生成N
个随机值的列表并对它们进行排序,返回sort
的第二个输出作为结果。To shuffle the rows of a matrix, you can use RANDPERM
randperm
will generate a list ofN
random values and sort them, returning the second output ofsort
as result.这可以通过 Matlab 的 randsample 函数为矩阵行创建一个新的随机索引来完成。
This can be done by creating a new random index for the matrix rows via Matlab's randsample function.
在阅读乔纳斯的答案时,我发现它有点难以阅读,难以理解。在Mathworks中,我发现了类似的 问题,答案更具可读性,更容易理解。借鉴 Mathworks 的想法,我编写了一个函数:
实际上它与 Jonas 的答案 执行相同的操作。但我认为它更具可读性,更容易理解。
While reading the answer of Jonas I found it little bit tough to read, tough to understand. In Mathworks I found a similar question where the answer is more readable, easier to understand. Taking idea from Mathworks I have written a function:
Actually it does the same thing as Jonas' answer. But I think it is little bit more readable, easier to understand.
对于大型数据集,您可以使用自定义 Shuffle 函数
For large datasets, you can use the custom Shuffle function