How to multiply matrices using a for loop
조회 수: 1 (최근 30일)
이전 댓글 표시
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.
댓글 수: 0
답변 (1개)
Kaushik Lakshminarasimhan
2018년 1월 17일
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
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
참고 항목
카테고리
Help Center 및 File Exchange에서 Resizing and Reshaping Matrices에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!