How do I sum over one dimension of a multidimensional array?
Afficher commentaires plus anciens
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?
Réponse acceptée
Plus de réponses (1)
Juan Fernandez
le 21 Juin 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 commentaires
Nesha Wright
le 23 Juin 2018
Walter Roberson
le 23 Juin 2018
permute(dimsum, [1 2 4 3])
or
squeeze(dimsum)
Louis-Philippe Guinard
le 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
le 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
le 25 Mar 2021
I wasn't too far off, I did sum(x(:,:,1:N)) and returned a 1x256xN array. Aight thanks a lot! :)
Catégories
En savoir plus sur Creating, Deleting, and Querying Graphics Objects dans Centre d'aide et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!