【发布时间】:2013-01-17 14:54:49
【问题描述】:
是否有一种简单的方法可以在 Matlab 中模拟随机排列矩阵(例如大小为 1000 乘 1000)?我想研究这些矩阵的独立和的特征值分布。
提前致谢!
【问题讨论】:
标签: matlab permutation
是否有一种简单的方法可以在 Matlab 中模拟随机排列矩阵(例如大小为 1000 乘 1000)?我想研究这些矩阵的独立和的特征值分布。
提前致谢!
【问题讨论】:
标签: matlab permutation
您可以像这样生成random permutation matrix:
创建一个单位矩阵:
A = eye( N ); %// N is the size of your matrix
对于较大的N 值,最好使用sparse matrices:
A = speye( N ); % create sparse identity matrix
生成随机排列:
idx = randperm(1:N);
使用矢量索引来相应地重新排列行
A = A(idx, :);
瞧!
【讨论】:
N,最好使用speye 而不是eye...不需要存储这么多零... ;-)
speye 被集成到您的解决方案中,就不需要重复了......那里没有额外的知识
在 Matlab 中(使用 R2012a)idx = randperm(1:N) 给出输入应该是标量的警告。所以:idx = randperm(N);.
【讨论】: