how to multiply matrix with vector n times?

1 visualización (últimos 30 días)
janny
janny el 11 de Nov. de 2014
Comentada: janny el 12 de Nov. de 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 comentario
Roger Stafford
Roger Stafford el 11 de Nov. de 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.

Iniciar sesión para comentar.

Respuesta aceptada

Guillaume
Guillaume el 11 de Nov. de 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 comentarios
Guillaume
Guillaume el 12 de Nov. de 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 el 12 de Nov. de 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

Iniciar sesión para comentar.

Más respuestas (0)

Categorías

Más información sobre Logical 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