Sum of matrices and loop

For example
x = [1 2 3 4 5 6; 7 8 9 10 11 12;13 14 15 16 17 18;1 2 3 4 5 6]
I want sum of [1 2 3 7 8 9] which is = 72 and [4 5 6 10 11 12 15 16 17 18] which is 114 , then [1 2 3 1 1 1 2 4 3] which is 18 and so on

2 Comments

Azzi Abdelmalek
Azzi Abdelmalek on 1 Mar 2014
Edited: Azzi Abdelmalek on 1 Mar 2014
This is not clear. What and so on means here?
for 600x600 matrices the pattern should be sum of 3x3 and produce a matrix of the sum example [72 114 18]

Sign in to comment.

 Accepted Answer

I just answered this, in http://www.mathworks.com/matlabcentral/answers/119568#comment_199374, your duplicate question. Anyway, again, you can use conv2():
result = conv2(x, ones(3), 'valid');
It gives you just what you want - the sums in a sliding window.

2 Comments

this answer is for the previous one. But in this question its
x = [1 2 3 4 5 6; 7 8 9 10 11 12;13 14 15 16 17 18;1 2 3 4 5 6] sum of [1 2 3 7 8 9] = 30 and [4 5 6 10 11 12] = 48 and [13 14 15 1 2 3] = 48 and [ 16 17 18 4 5 6] = 66
the result = [30 48; 48 66]
x = [1 2 3 4 5 6; 7 8 9 10 11 12;13 14 15 16 17 18;1 2 3 4 5 6]
theSums = conv2(x, ones(2,3), 'same') % Compute sums
theResult = theSums(1:2:end, 2:3:end) % Subsample

Sign in to comment.

More Answers (0)

Categories

Find more on Loops and Conditional Statements in Help Center and File Exchange

Community Treasure Hunt

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

Start Hunting!