How to taker power of a permutaion matrix

2 visualizaciones (últimos 30 días)
sadiqa ilyas
sadiqa ilyas el 5 de Oct. de 2019
Editada: Bruno Luong el 5 de Oct. de 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

Respuesta aceptada

Bruno Luong
Bruno Luong el 5 de Oct. de 2019
Editada: Bruno Luong el 5 de Oct. de 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)

Más respuestas (0)

Categorías

Más información sobre Semiconductors and Converters en Help Center y File Exchange.

Etiquetas

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by