# sum of range of matrix elements from starting and end point

61 views (last 30 days)
Abhijit Sardar on 1 Jan 2021
Commented: KALYAN ACHARJYA on 3 Jan 2021
I have 90000*20 matrix i want to add 50 elements of 18th column successively. how can i do so please help.also could you please tell how to do sum of elements in the vector if the starting and end point is known.

KALYAN ACHARJYA on 1 Jan 2021
Edited: KALYAN ACHARJYA on 1 Jan 2021
Lets say the matrix data is variable name as "mat"
result=sum(mat(1:50,18))
"could you please tell how to do sum of elements in the vector if the starting and end point is known".
If 1-D vector, you can use sum directly
result=sum(mat(Start_index:End_index))
For 2 D case
data=mat(From rows:Till Rows number,From columns:Till Columns number)
result=sum(data(:))
Abhijit Sardar on 3 Jan 2021
No, i meant first i want sum of 1 - 50 elements and then 2-51,3-52 like so on... i am coding like this but in 'res' i am only getting one answer. i want the consecutive sum of 50 elements correspoing to all 90000 row elements.
for i = 1:p-50
res = sum(m(i:i+50,18))
end
KALYAN ACHARJYA on 3 Jan 2021
In that case you have to use array indexing
l=1;
res=zeros(1,,,,expected_num_of interation); % Must do
for i = 1:p-50
res(l)= sum(m(i:i+50,18))
end
In this case you can avoid loop, please use movsum, as follows (Recommended)
data=m(:,18);
sum_result=movsum(data,50)