随机置换矩阵

Ngu*_*Hoi 6 matlab permutation

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

提前致谢!

Eit*_*n T 10

您可以生成随机排列矩阵,如下所示:

  1. 创建一个统一矩阵:

    A = eye( N );  %// N is the size of your matrix
    
    Run Code Online (Sandbox Code Playgroud)

    对于较大的值,N最好使用稀疏矩阵:

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

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

    A = A(idx, :);
    
    Run Code Online (Sandbox Code Playgroud)

瞧!

  • 对于大的`N`,最好使用`speye`而不是`eye` ...不需要存储这么多的零...... ;-) (3认同)