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.

回答 (1 件)

Kaushik Lakshminarasimhan
Kaushik Lakshminarasimhan 2018 年 1 月 17 日

0 投票

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 件のコメント

Rachel Buckland
Rachel Buckland 2018 年 1 月 17 日
I'm trying to accomplish this using a for loop do you know how to do it that way?
Kaushik Lakshminarasimhan
Kaushik Lakshminarasimhan 2018 年 1 月 18 日
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

サインインしてコメントする。

カテゴリ

ヘルプ センター および File ExchangeLoops and Conditional Statements についてさらに検索

質問済み:

2018 年 1 月 17 日

Community Treasure Hunt

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

Start Hunting!

Translated by