How do I make an average of points ?

3 次查看(过去 30 天)
Hi, say I have an 11*10 matrix and for every point in the 6th row, I want matlab to take an average of the surrounding points and make a new row; ie 1 point has 8 surrounding points then the same for each point in the row, how would this be done please ? Thanks
  2 个评论
jonas
jonas 2018-8-22
Please provide an example with input and desired output
Ernest Adisi
Ernest Adisi 2018-8-22
1 2 3 4 5 6 7 8 9 10
5 2 4 6 7 4 5 6 7 8
1 2 3 4 5 6 7 8 9 10
Eg. 2 on the second row would be (1+2+3+5+2+4+1+2+3)/9
Then 4 would be the same pattern
(2+3+4+2+4+6+2+3+4)/9. Etc
So a new row is formed with every point taken as the average of the immediate surrounding points

请先登录,再进行评论。

采纳的回答

jonas
jonas 2018-8-22
编辑:jonas 2018-8-22
Based on your simple example:
A=[1 2 3 4 5 6 7 8 9 10;
5 2 4 6 7 4 5 6 7 8;
1 2 3 4 5 6 7 8 9 10]
out = conv2(A,ones(3,3)./9,'same')
This will give you the average of all 9 neighboring values. Second row:
out(2,:)
ans =
Columns 1 through 10
1.4444 2.5556 3.3333 4.5556 5.2222 5.7778 6.3333 7.3333 8.3333 5.8889

更多回答(1 个)

Yuvaraj Venkataswamy
编辑:Yuvaraj Venkataswamy 2018-8-22
Check this,
if true
X = rand(11,10);
k = 6;
MA = movmean(X,[(k-1) 0]);
Y = MA(k:k:end,:);
end

类别

Help CenterFile Exchange 中查找有关 Creating and Concatenating Matrices 的更多信息

Community Treasure Hunt

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

Start Hunting!

Translated by