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!