1 view (last 30 days)
Joseph Pauwels on 10 Apr 2014
Commented: Joseph Pauwels on 15 Apr 2014
Im trying to figure out how I can create a function that will take a row vector, say 3-x-n, and figure out how to add each element of its immediate neighbor,find the average and replace create a new matrix.
so if A=[ 1 2 0 1]
[]=avg#(A)
ans= 1.5 1 1 .5
can you help
Image Analyst on 11 Apr 2014

John D'Errico on 10 Apr 2014
(I'm not sure how a 3xn matrix is a row vector, by the way.)
Anyway, what have you tried? Surely this is trivial with a loop. If you really want to be efficient, then why not try conv? That is usually the trick to all of these problems. Take a shot at it.
Image Analyst on 11 Apr 2014
yes, sorry, should have reread my question a 3xn is not a row vector, I meant to say I want the function file to work for a row vector as well as a 3xn. Ill try conv.
Thank you,
I dont think thats what I am looking for, I now I need a loop but Im not sure how to start. If i have a 2 x 2 like
a=[2 4 2 3]
the function needs to take (r1+(r1,c1)+(r2,c1)+(r2,c2)) the average them.

Image Analyst on 11 Apr 2014
sum_Of_a = conv2(a, ones(3), 'same')
count_in_window = conv2(ones(size(a)), ones(3), 'same')
theMean = sum_Of_a ./ count_in_window % Same as "output"
Joseph Pauwels on 15 Apr 2014