Summing up values in a matrix

1 view (last 30 days)
Jonathan Bird
Jonathan Bird on 4 Jan 2021
Commented: Matt J on 4 Jan 2021
I have a 4D matrix, I(i,j,y,x) which has dimensions of 64 x 64 x 70 x 160. For each coordinate in y and x I'd like to sum all the values for I across i and j to form a 2D matrix I_y_x. i.e. I_y_x(0,0) = I(1,1,0,0)+I(1,2,0,0)+I(1,3,0,0) + .... + I(2,1,0,0) etc.
Thanks in advance

Answers (1)

Matt J
Matt J on 4 Jan 2021
sum(l,[1,2])
  2 Comments
Jonathan Bird
Jonathan Bird on 4 Jan 2021
Edited: Jonathan Bird on 4 Jan 2021
Thanks for your response, I tried I_y_x = sum(I,[1,2]); but I_y_x is now also a 4D matrix instead of 2D.
Matt J
Matt J on 4 Jan 2021
Just add a squeeze() or a reshape() operation
l=rand(64 , 64 , 70 , 160);
result=squeeze(sum(l,[1,2]));
whos result
Name Size Bytes Class Attributes result 70x160 89600 double

Sign in to comment.

Categories

Find more on Shifting and Sorting Matrices in Help Center and File Exchange

Tags

Community Treasure Hunt

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

Start Hunting!