python 写一个矩阵的五点二次平滑程序
时间: 2023-06-03 21:02:30 浏览: 67
下面是 Python 实现矩阵 5x5 二次平滑的程序:
```python
import numpy as np
def smooth(matrix):
new_matrix = np.zeros(matrix.shape)
for i in range(2, matrix.shape[0]-2):
for j in range(2, matrix.shape[1]-2):
new_matrix[i,j] = (1/273) * (
4 * matrix[i,j] + 2 * (
matrix[i,j-1] + matrix[i,j+1] +
matrix[i-1,j] + matrix[i+1,j]
) + 1 * (
matrix[i-2,j] + matrix[i+2,j] +
matrix[i,j-2] + matrix[i,j+2]
) + 1/4 * (
matrix[i-1,j-1] + matrix[i-1,j+1] +
matrix[i+1,j-1] + matrix[i+1,j+1]
) + 1/16 * (
matrix[i-2,j-1] + matrix[i-2,j+1] +
matrix[i+2,j-1] + matrix[i+2,j+1] +
matrix[i-1,j-2] + matrix[i-1,j+2] +
matrix[i+1,j-2] + matrix[i+1,j+2]
)
)
return new_matrix
```
这个程序可以处理任意大小的矩阵,但是矩阵大小必须至少为 5x5。