How do I sum over one dimension of a multidimensional array?
Show older comments
I have four dimensions in a netcdf file: lat, long, sector and time. I want to sum over JUST sector. Is there a simple command to do this?
Accepted Answer
More Answers (1)
Juan Fernandez
on 21 Jun 2018
0 votes
Yes, there is a simple single command. Use the sum(A,dim) function. If this is not working, then provide additional information and perhaps I can be of more assistance.
5 Comments
Nesha Wright
on 23 Jun 2018
Walter Roberson
on 23 Jun 2018
permute(dimsum, [1 2 4 3])
or
squeeze(dimsum)
Louis-Philippe Guinard
on 24 Mar 2021
Tracing back to Juan's answer, if I wanted to sum, say, just the N first elements of the 3rd dimension, how would one go about that?
I have a very similar problem, as in, a 4D array. I treat it like a 256x256 image at 256 different timestamps, for 30 acquisitions. In this regard, my dimensions would be x, y, t and acq. I want to add the 15 first t's while leaving all other dimensions intact, I don't care what happens to the rest of the t's. How would that be possible?
Thanks in advance!
Adam Danz
on 24 Mar 2021
> if I wanted to sum, say, just the N first elements of the 3rd dimension, how would one go about that?
sum(x(:,:,1:N), 3)
Louis-Philippe Guinard
on 25 Mar 2021
I wasn't too far off, I did sum(x(:,:,1:N)) and returned a 1x256xN array. Aight thanks a lot! :)
Categories
Find more on Creating, Deleting, and Querying Graphics Objects 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!