有没有一种简单的方法可以在Matlab中模拟随机排列矩阵(比如大小1000乘1000)?我想研究这些矩阵的独立和的特征值分布。
提前致谢!
答案 0 :(得分:10)
您可以像这样生成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, :);
瞧!
答案 1 :(得分:1)
在Matlab中(使用R2012a)idx = randperm(1:N)
发出警告,输入应该是标量。所以:idx = randperm(N);
。