7

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

提前致谢!

4

2 回答 2

11

您可以像这样生成一个随机排列矩阵

  1. 创建一个统一矩阵:

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

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

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

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

    A = A(idx, :);
    

瞧!

于 2013-01-17T15:03:24.833 回答
1

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

于 2017-01-18T17:09:04.747 回答