MATLAB Answers

How to taker power of a permutaion matrix

2 ビュー (過去 30 日間)
sadiqa ilyas
sadiqa ilyas 2019 年 10 月 5 日
編集済み: Bruno Luong 2019 年 10 月 5 日
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 件のコメント

サインイン to comment.

採用された回答

Bruno Luong
Bruno Luong 2019 年 10 月 5 日
編集済み: Bruno Luong 2019 年 10 月 5 日
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 件のコメント

サインイン to comment.

その他の回答 (0 件)

サインイン してこの質問に回答します。


Translated by