## Compute average of each value in a matrix without using for

on 31 Oct 2012

### Honglei Chen (view profile)

Hi all,
I was wondering is it possible to alter each value of a matrix based on the average value of its neighbors, wihtout using for loops?

the cyclist

### the cyclist (view profile)

on 31 Oct 2012
It would eliminate a lot of guesswork on the part of people trying to help you if you could be much more specific about what you want to do, and ideally provide at least one example of the input and output you would expect from this.
Raldi

### Raldi (view profile)

on 31 Oct 2012
You are right...
Well basicaly lets say i have
x= [0 0 0 0 0 0 0 2 0 0 0 0 0 1 0 0 0 0 0 0]
What i want is to create a new matrix that will be
newx= [0 0 (2/9) 0 0 0 0 2 0 0 0 0 (3/9) 1 0 0 0 0 0 0]
Here i randomly changed only two values to show that the get the average value of all the neighboring values.

### Honglei Chen (view profile)

on 31 Oct 2012

you can use conv2 or imfilter, for example
x = magic(3)
y = conv2(ones(3)/9,x)

Andrei Bobrov

on 31 Oct 2012
may be
y=conv2(h,h,x);
Matt J

### Matt J (view profile)

on 31 Oct 2012
Yes, that's what I really meant.
Raldi

### Raldi (view profile)

on 31 Oct 2012
Thanks alot guys.