Czy istnieje prosty sposób symulacji losowej macierzy permutacji (powiedzmy o wielkości 1000 na 1000) w Matlab? Chciałbym zbadać rozkład wartości własnych niezależnej sumy takich macierzy.Macierz permutacji losowej
Z góry dziękuję!
Czy istnieje prosty sposób symulacji losowej macierzy permutacji (powiedzmy o wielkości 1000 na 1000) w Matlab? Chciałbym zbadać rozkład wartości własnych niezależnej sumy takich macierzy.Macierz permutacji losowej
Z góry dziękuję!
Można wygenerować random permutation matrix tak:
Tworzenie macierzy jedność:
A = eye(N); %// N is the size of your matrix
dla dużych wartościach N
lepiej jest użyć sparse matrices:
A = speye(N); % create sparse identity matrix
Generowanie losowej permutacji:
idx = randperm(1:N);
Zastosowanie wektora indeksowanie aby zmienić kolejność wierszy odpowiednio
A = A(idx, :);
Voila!
W programie Matlab (używany R2012a) idx = randperm(1:N)
wyświetla ostrzeżenie, że dane wejściowe powinny być skalarne. A więc: idx = randperm(N);
.
zajrzyj na: http://stackoverflow.com/questions/13429144/is-there-a-better-way-to-andandlyly-gen--doubly-stochastic-matrix – Shai