How to multiply matrices using a for loop

I have the equation p(t+1)=p(t)*P. p(t) is the matrix [p1(t) p2(t) p3(t) p4(t)] with p(0)=[1 0 0 0] and P is a 4x4 matrix.
I need to create a for loop that runs through the matrix multiplications until it reaches a certain p1(t). Can anyone help? Thanks.

Respuestas (1)

p = rand(4,1); % 4x1 vector
P = rand(4,4); % 4x4 matrix
pstar = 10;
while p(1)<pstar % stop multiplying if p(1) reaches a certain pstar
p = P*p;
end

2 comentarios

Rachel Buckland
Rachel Buckland el 17 de En. de 2018
I'm trying to accomplish this using a for loop do you know how to do it that way?
for loop is not ideal here because you do not know how many iterations you'll need a priori (unless you worked out the math). Is there a reason you insist on a for loop? If you absolutely must use it, here's one way:
p = rand(4,1); % 4x1 vector
P = rand(4,4); % 4x4 matrix
pstar = 10;
for i=1:1e4 % allow for a large enough number of iterations
p = P*p;
if p(1)>pstar, break; end
end

Iniciar sesión para comentar.

Categorías

Más información sobre Loops and Conditional Statements en Centro de ayuda y File Exchange.

Preguntada:

el 17 de En. de 2018

Comentada:

el 18 de En. de 2018

Community Treasure Hunt

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

Start Hunting!

Translated by