在MATLAB中,我正在使用shake.m函数(http://www.mathworks.com/matlabcentral/fileexchange/10067-shake)随机混洗每列。例如:在MATLAB中随机移动矩阵有更好/更快的方式吗?
a = [1 2 3; 4 5 6; 7 8 9]
a =
1 2 3
4 5 6
7 8 9
b = shake(a)
b =
7 8 6
1 5 9
4 2 3
此功能不正是我想要的,但是我的列很长(> 10,000,000),因此这需要很长的时间来运行。有谁知道实现这个更快的方法吗?我曾尝试单独晃动每个列向量,但这不是更快。谢谢!
看看那个摇动函数,它看起来是完全向量化的,但它使用按列排序的矩阵。即在你的情况下,它会对> 10,000,000行的列进行排序,这并不令人惊讶。 – Nras 2014-08-29 07:30:49