gpt4 book ai didi

Matlab - 周围元素的总和

转载 作者:太空宇宙 更新时间:2023-11-03 20:10:27 24 4
gpt4 key购买 nike

我想计算矩阵中给定元素周围元素的总和。到目前为止,我已经编写了这些代码行:

for i=1:m,
rij(1:n)=0
for j=1:n,
alive = tijdelijk(i-1,j)+tijdelijk(i+1,j)+tijdelijk(i-1,j-1)+tijdelijk(i+1,j-1)+tijdelijk(i,j+1)+tijdelijk(i,j-1)+tijdelijk(i-1,j+1)+tijdelijk(i+1,j+1)

这会导致错误,因为例如,对于 i=1,i-1 变为零。任何人都知道如何在不出现此错误的情况下执行此操作?

最佳答案

您可以通过过滤对元素求和。 conv2可以用于这种方式。

我举个例子。我创建了一个示例矩阵

>> A = reshape(1:20, 4, 5)

A =

1 5 9 13 17
2 6 10 14 18
3 7 11 15 19
4 8 12 16 20

然后,我创建了一个过滤器。过滤器就像一个掩码,您将中心放在当前单元格上,过滤器上与 1's 对应的位置相加。对于八连通邻居的情况,过滤器应该如下:

>> B = [1 1 1; 1 0 1; 1 1 1]

B =

1 1 1
1 0 1
1 1 1

然后,您只需将矩阵与这个小矩阵进行卷积即可。

>> conv2(A, B, 'same')

ans =

13 28 48 68 45
22 48 80 112 78
27 56 88 120 83
18 37 57 77 50

如果您想要四个相连的邻居,您可以将过滤器的角设置为 0。同样,您可以根据您的目的设计任何过滤器,例如对所有邻居进行平均而不是求和。

详情请见convolution article在维基百科中。

关于Matlab - 周围元素的总和,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15358340/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com