add elements in a matrix

2 views (last 30 days)
sasso samer
sasso samer on 11 Apr 2016
Edited: Azzi Abdelmalek on 12 Apr 2016
I have a matrix like this
1 2 3 3 1 2 2 1 3
3 2 1 1 3 2 2 3 1
What i want to do is a 3x9 matrix that contains this
cell (1,1) . (1 + 3 + 2) - 1 .... 1(the first element) + 3(the fourth element) + 2(the 7th element) - 1(my initial cell)
cell (1,2) . (2 + 1 + 1) - 2 .... 2(the second element) + 1(the fifth element) + 1(the 8th element) - 2(my initial cell)
and so on... cell (1,5) . (1 + 2 + 1)-1 .... 1(the 5th element) + 2(2nd element) + 1(8th element) - 1(initial cell)
It's like calculating the total of all the numbers where the indices are separated by 3
output =
5 2 5 3 3 6 4 3 5
3 6 3 5 5 2 4 5 3
I have this code
for k1 = 1:2
for k2 = 1:3
S(k1,k2) = sum(a(k1,3+k2:3:end),2);
end
end
but it adds the first 3 number only, i want it to continue till the end of the matrix

Answers (1)

Azzi Abdelmalek
Azzi Abdelmalek on 11 Apr 2016
Edited: Azzi Abdelmalek on 12 Apr 2016
A=[1 2 3 3 1 2 2 1 3;3 2 1 1 3 2 2 3 1];
ff=numel(A(1,1:3:end))-1;
[n,m]=size(A);
[ii,jj]=ndgrid(1:n,1:m);
AA=[A A];
out=arrayfun(@(x,y) sum(AA(x,y+3:3:y+ff*3)),ii,jj)

Categories

Find more on Resizing and Reshaping Matrices 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!