随机置换矩阵

时间:2013-01-17 14:54:50

标签: matlab permutation

有没有一种简单的方法可以在Matlab中模拟随机排列矩阵(比如大小1000乘1000)?我想研究这些矩阵的独立和的特征值分布。

提前致谢!

2 个答案:

答案 0 :(得分:10)

您可以像这样生成random permutation matrix

  1. 创建一个统一矩阵:

    A = eye( N );  %// N is the size of your matrix
    

    对于较大的N值,最好使用sparse matrices

    A = speye( N ); % create sparse identity matrix
    
  2. 生成随机排列:

    idx = randperm(1:N);
    
  3. 使用向量索引相应地重新排列行

    A = A(idx, :);
    
  4. 瞧!

答案 1 :(得分:1)

在Matlab中(使用R2012a)idx = randperm(1:N)发出警告,输入应该是标量。所以:idx = randperm(N);