Compute average of each value in a matrix without using for

1 Ansicht (letzte 30 Tage)
Raldi
Raldi am 31 Okt. 2012
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?
Thanks in advance.
  2 Kommentare
the cyclist
the cyclist am 31 Okt. 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 am 31 Okt. 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.

Melden Sie sich an, um zu kommentieren.

Akzeptierte Antwort

Honglei Chen
Honglei Chen am 31 Okt. 2012
you can use conv2 or imfilter, for example
x = magic(3)
y = conv2(ones(3)/9,x)
  5 Kommentare
Matt J
Matt J am 31 Okt. 2012
Yes, that's what I really meant.
Raldi
Raldi am 31 Okt. 2012
Thanks alot guys.

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (0)

Kategorien

Mehr zu Loops and Conditional Statements finden Sie in Help Center und File Exchange

Produkte

Community Treasure Hunt

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

Start Hunting!

Translated by