How to sum specific elements in a row of a matrix

8 views (last 30 days)
I have a 256 by 256 matrix, lets say it is called m.
I would like to sum specific elements from a specific row in that matrix.
For example, just looking at row 1, I would like to sum the following of these elements:
1-4, (multiples of 16) + 1, (multiples of 16) + 2, (multiples of 16) + 3, and (multiples of 16) + 4.
Therefore I will end up with a single value for each row of the matrix.
Please can somebody help me with the coding for this?
Thank you

Accepted Answer

Ameer Hamza
Ameer Hamza on 27 Mar 2020
Try this:
m = rand(256,256);
mask = reshape((1:16:256)+(0:3)', 1, []);
result = sum(m(:,mask), 2);

More Answers (1)

darova
darova on 27 Mar 2020
Edited: darova on 27 Mar 2020
try this
A = rand(256);
srow = 0;
for i = 1:16:size(A,1)
srow = srow + sum(A(i:i+3,:),1);
end

Categories

Find more on Creating and Concatenating Matrices in Help Center and File Exchange

Products


Release

R2019a

Community Treasure Hunt

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

Start Hunting!