这是以下内容的以下部分:
2) 附加问题:
获得非零邻居的平均值后,我还想测试邻居元素是否等于、小于或大于非零的平均值。如果它大于或等于“1”,否则为“0”。
注:如果邻居在两个或多个中心的半径内,则取最小的中心平均值进行测试。
0 12 9
4 **9** 15
11 19 0
中间的“9”在 12、15 和 19 个中心的半径内,因此取这些中心的最小平均值 min[9.000, 9.000, 8.000]=8.000
例如,当半径 = 1 m 或 1 个元素远时。
new_x =
0 0 0 0 0
0 0 **9.0000** 9.0000 0
0 4.0000 9.0000 **9.0000** 0
0 **8.3333** **8.0000** 0 0
0 2.0000 4.0000 8.0000 0
0 4.0000 5.0000 8.0000 0
0 0 0 0 0
Test_x =
0 0 0 0 0
0 0 **9.0000** 1 0
0 0 1 **9.0000** 0
0 **8.3333** **8.0000** 0 0
0 0 0 0 0
0 0 0 0 0
0 0 0 0 0
=================================================== ===============================
1)假设我有一个矩阵,如下所示,
X =
0 0 0 0 0
0 0 12 9 0
0 4 9 15 0
0 11 19 0 0
0 2 4 8 0
0 4 5 8 0
0 0 0 0 0
我想找到周围非零元素大于 10 的平均值。其余元素仍然保持不变,即元素
所以我希望我的解决方案看起来像这样,
new_x =
0 0 0 0 0
0 0 9.0000 9.0000 0
0 4.0000 9.0000 9.0000 0
0 8.3333 8.0000 0 0
0 2.0000 4.0000 8.0000 0
0 4.0000 5.0000 8.0000 0
0 0 0 0 0
不是:我就是NOT只查看大于某个值(本例中为 10)的元素的邻居。
假设任何大于 10 的元素都是“中心”,我们想要找到半径为 1 m 的非零元素的平均值。其中 1 米 = 距中心 1 个元素。
注意:半径可能并不总是 1 米,即可以是 2 米或更大。在这种情况下,它不会只是中心的顶部、底部、左侧和右侧。
****还要注意矩阵边界。例如,当半径 = 2 或更大时,一些非零邻居的平均值位于边界之外。**
例如,
对于半径 =1 m = 1 个元素的情况,
new_x = [(i+1,j) 、 (i-1,j) 、(i,j+1) 和 (i,j-1)] 的平均值 - 中心的顶部、底部、右侧和左侧。
对于半径 =2 m = 2 个元素的距离,
new_x = [(i+1,j)、(i+2,j)、(i-1,j)、(i-2,j)、(i,j+1)、(i,j+) 的平均值2)、(i,j-1)、(i,j-2)、(i+1,j+1)、(i+1,j-1)、(i-1,j-1) 和(i-1,j+1)]。
=================================================== ===============
我之前尝试过一些东西,但我不熟悉这些功能。
所以请帮我解决这个问题。
先感谢您。