Borrar filtros
Borrar filtros

Non-Overlapping Moving Sum

17 visualizaciones (últimos 30 días)
Suman Dhamala
Suman Dhamala el 27 de Jun. de 2021
Comentada: Suman Dhamala el 27 de Jun. de 2021
Consider any matrix, say Rain=(1:10)'. I want to compute a non-overlapping moving sum with two element.
Rain=1,2,3,4,5,6,7,8,9,10
Compute=1+2,3+4,5+6,7+8,9+10
With traditional movsum command, the moving sum is overlapping elements. I want to evaluate non-overlapping moving sum. Any in-built function? I have tried with loops and all those, it works but in-built function would be fast to compute.

Respuesta aceptada

Star Strider
Star Strider el 27 de Jun. de 2021
Try this —
Rain = [1,2,3,4,5,6,7,8,9,10];
rRain = reshape(Rain, 2, [])
rRain = 2×5
1 3 5 7 9 2 4 6 8 10
sumRain = sum(rRain)
sumRain = 1×5
3 7 11 15 19
These could be combined into one line, however I kept them separate to demonstrate how it works.
.
  6 comentarios
Star Strider
Star Strider el 27 de Jun. de 2021
@Matt J — Thank you! I didn’t think to look in FEX.
Suman Dhamala
Suman Dhamala el 27 de Jun. de 2021
This worked thanks @Matt J and everyone

Iniciar sesión para comentar.

Más respuestas (1)

Image Analyst
Image Analyst el 27 de Jun. de 2021
Since you have an image, you can do it with blockproc. However it only works with 2-D arrays so you'll have to do it once on each slice, then again along the z direction. I'm attaching some blockproc demos. I haven't done it with a 3-D image so you're on your own but I'm pretty sure it can be done.

Categorías

Más información sobre Introduction to Installation and Licensing en Help Center y File Exchange.

Etiquetas

Productos


Versión

R2019a

Community Treasure Hunt

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

Start Hunting!

Translated by