How to find the order of the power of A matrix?
8 views (last 30 days)
Show older comments
Muhammad Usman
on 28 Feb 2023
Edited: Dyuman Joshi
on 28 Feb 2023
Hi, I want to calculate the order of the power matrix A. Here order doesn't mean for rows into columns but the power n of the matrix in modulo 2.
For example:
I try to wrote the code, but not getting the desired reults i.e., 3. Here's the code:
A = [1 0 1;1 1 0;1 0 0];
B = A;
i = 0;
for n = 1:5
P = A*B;
if P == eye(3)
i = i+1;
break;
else
if mod(P(:,:),2)==0
B(mod(P(:,:),2)==0) = 0
else
B(mod(P(:,:),2)~=0) = 1
end
P = A*B;
end
i = i+1;
end
disp(i)
Please help me out.
Thanks
0 Comments
Accepted Answer
Dyuman Joshi
on 28 Feb 2023
Edited: Dyuman Joshi
on 28 Feb 2023
Use isequal to compare matrices and you can directly calculate modulo by mod, you don't need to assign the values specifically -
A = [1 0 1;1 1 0;1 0 0];
B = A;
i = 0;
for n = 1:5
if isequal(B, eye(3))
i = i+1;
break;
else
sprintf('multiplication')
B = A*B
sprintf('calculating modulo 2')
B = mod(B,2)
end
i = i+1;
end
disp(i)
2 Comments
Dyuman Joshi
on 28 Feb 2023
Edited: Dyuman Joshi
on 28 Feb 2023
mod of 2 can only have 2 values, if mod of 2 is not equal to 0 then it is equal to 1.
I have edited my answer, so you can take a look at each step for every iteration.
See Also
Categories
Find more on Logical in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!