how to multiply matrix with vector n times?

1 Ansicht (letzte 30 Tage)
janny
janny am 11 Nov. 2014
Kommentiert: janny am 12 Nov. 2014
hi guys i have this code:
M =[0 1 0 0 0 0 0 0;0 0 1 0 0 0 0 0;0 0 0 1 0 0 0 0;0 0 0 0 1 0 0 0; 0 0 0 0 0 1 0 0;0 0 0 0 0 0 1 0;0 0 0 0 0 0 0 1;1 1 0 0 0 0 0 0];
A = [ 1 0 0 0 0 0 0 0];
C =mod((A*M'),2) % multiplication by module 2
i want to repeat the C =mod((A*M'),2) many times until one of the results repeated. how to do this?
  1 Kommentar
Roger Stafford
Roger Stafford am 11 Nov. 2014
When you say "repeated" do you mean successive vectors, C, are the same, or do you mean that one of the C's along the line is the same as some earlier C so that a cycle is created? The first meaning is easier to accomplish and the second sounds more likely.

Melden Sie sich an, um zu kommentieren.

Akzeptierte Antwort

Guillaume
Guillaume am 11 Nov. 2014
I assume you mean you want to repeat
A = mod(A*M', 2);
Otherwise, if A and M never changes C = mod(A*M', 2) will always give the same result!
Assuming you want to stop when any of the A that's been generated reappers again, build a matrix of A (concatenate rows) and use ismember(..., 'rows') to find if your new A is present in the matrix:
M =[0 1 0 0 0 0 0 0;0 0 1 0 0 0 0 0;0 0 0 1 0 0 0 0;0 0 0 0 1 0 0 0; 0 0 0 0 0 1 0 0;0 0 0 0 0 0 1 0;0 0 0 0 0 0 0 1;1 1 0 0 0 0 0 0];
A = [ 1 0 0 0 0 0 0 0];
AA = A;
A = mod(A*M', 2)
while ~any(ismember(A, AA, 'rows'))
AA = [AA; A];
A = mod(A*M', 2);
end
  6 Kommentare
Guillaume
Guillaume am 12 Nov. 2014
No. Try to understand what it does.
You have to replace the original
while ~any(ismember(A, AA, 'rows'))
by the four lines I've written, in the same order (well, you can swap the first two).
janny
janny am 12 Nov. 2014
thanks man,, it works fine...
AA = A; A = mod((A*M'), 2) step = 0; while ~any(ismember(A, AA, 'rows'))&& step < maxstep AA = [AA; A]; A = mod((A*M'),2);
maxstep = 10;
step = step + 1;
end

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (0)

Tags

Community Treasure Hunt

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

Start Hunting!

Translated by