How to taker power of a permutaion matrix
1 visualizzazione (ultimi 30 giorni)
Mostra commenti meno recenti
sadiqa ilyas
il 5 Ott 2019
Modificato: Bruno Luong
il 5 Ott 2019
Hi ,I want to find the power of a permutation matrix, i.e
A=(1 2 3;3 2 1) is a permutation matrix and I want to find (1 2 3; 3 2 1)^5
.How to do this in matlab
0 Commenti
Risposta accettata
Bruno Luong
il 5 Ott 2019
Modificato: Bruno Luong
il 5 Ott 2019
You have 2 ways to compute it, from the permutation itself, or using the permutation matrix then raise a power of it.
% Generate a random test permutation
[~,p]=sort(rand(1,10)); % in you case it's [3 2 1], the second row of your A
% Permutation matrix
p0 = 1:length(p);
A = accumarray([p(:) p0(:)],1);
% raise power
n = 5;
Apn = A^n
% apply the permutation n times
pn = p0;
for k=1:n
pn = pn(p);
end
An = accumarray([pn(:) p0(:)],1)
% Check both gives the same result
isequal(Apn,An)
0 Commenti
Più risposte (0)
Vedere anche
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!