Creating a loop for matrix multiplication
古いコメントを表示
Hi. I am trying to create a loop to multiply two matricies 40 times such that A*B0=B1 and A*B1=B2 and so on. So far I have got this
%
a=1-0.0277;
b=(1/15)*(1-0.008);
c=0.0215*a;
d=(14/15)*(1-0.008);
A=[[a,b];[c,d]];
B0=[6820;2140];
B=[B0];
for j=1:40
B1=A*B0;
B0=B1;
B=[B;B1];
disp(round(B(j)))
end
plot(B)
It does work but the result comes up as a list of all the values together and I want it to be a in a 1x2 matrix format.
Can anyone help? Thank you
5 件のコメント
How can you have a 1x2 matrix--you've got two of them which you've concatenated together vertically with the ';'. You can get a 2x2 if you simply horizontally concatenate as
B=[B B1];
but there are four elements. This is for the first pass -- after that you've got a difficulty in dimensions going forward. It's not at all clear what your end objective is, so not sure how to suggest a correction.
Star Strider
2014 年 5 月 11 日
編集済み: Star Strider
2014 年 5 月 11 日
B actually is in an array. Changing that line to:
disp(round(B(:,j)))
will display the new columns of B as they are created.
Else, I agree.
dpb
2014 年 5 月 11 日
@Star== Whiff... :) Edited the bonehead comment out.
John D'Errico
2014 年 5 月 12 日
NO NO NO NO. Do not create 81 different named variables. Learn to use arrays of variables. Your code will be the better for it. Your mental health a bit better too, because your code will not drive you crazy.
回答 (1 件)
Wojtek
2014 年 5 月 13 日
1 件のコメント
Jos (10584)
2014 年 5 月 13 日
for i=1:41,
C = [C B(2*i-1:2*i)]
end
is exactly the same as
C = B(1:82)
カテゴリ
ヘルプ センター および File Exchange で Loops and Conditional Statements についてさらに検索
製品
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!