Sum repetition in matrices

1 回表示 (過去 30 日間)
Moe
Moe 2014 年 4 月 28 日
コメント済み: Star Strider 2014 年 4 月 28 日
Hi everyone,
Suppose I have matrix d1, d2, d3, d4, d5:
d1 = [0 0 0 1;0 0 0 0]; % input data
d2 = [0 0 0 0;1 0 0 0]; % input data
d3 = [0 1 0 0;0 0 0 0]; % input data
d4 = [0 0 0 0;1 0 0 0]; % input data
d5 = [0 0 0 0;0 0 1 0]; % input data
and matrix c:
c = [10 12 14 5;1 4 9 15];
Then I want matrix m to be:
m1=c+d1
m2=c+d1+d2 % In other words, in each iteration, the new matrix d should be summed with previous one (same for rest of calculation)
m3=c+d1+d2+d3
m4=c+d1+d2+d3+d4
m5=c+d1+d2+d3+d4+d5
Can anyone please help me?
Note: matrix d is generated with another loop automatically which is dependent to output of matrix m (sum(sum(m)).
  2 件のコメント
Image Analyst
Image Analyst 2014 年 4 月 28 日
What's wrong with that way? Why do you need a loop?
Moe
Moe 2014 年 4 月 28 日
@ Image Analyst
Actually, I have over than 10,000 of matrix "d", and each of them will be calculated after calculation each matrix "m" (sort of convergence problem).

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

採用された回答

Star Strider
Star Strider 2014 年 4 月 28 日
This works:
d(:,:,1) = [0 0 0 1;0 0 0 0];
d(:,:,2) = [0 0 0 0;1 0 0 0];
d(:,:,3) = [0 1 0 0;0 0 0 0];
d(:,:,4) = [0 0 0 0;1 0 0 0];
d(:,:,5) = [0 0 0 0;0 0 1 0];
c = [10 12 14 5;1 4 9 15];
m(:,:,1) = c;
for k1 = 2:size(d,3)+1
m(:,:,k1) = m(:,:,k1-1) + d(:,:,k1-1);
end
m = m(:,:,2:end) % Result for ‘m’
  2 件のコメント
Moe
Moe 2014 年 4 月 28 日
Thanks Star. It was great!
Star Strider
Star Strider 2014 年 4 月 28 日
My pleasure!

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

その他の回答 (0 件)

カテゴリ

Help Center および File ExchangeMatrix Indexing についてさらに検索

Community Treasure Hunt

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

Start Hunting!

Translated by