用numpy设置一个m*n的之字形矩阵,并且坐标原点位于中心
时间: 2024-05-01 11:19:02 浏览: 119
下面是一个实现之字形矩阵的示例代码:
```python
import numpy as np
m, n = 5, 7
z_matrix = np.zeros((m, n))
# 将坐标原点移动到中心
origin = np.array([m // 2, n //2])
# 定义初始位置
pos = np.array([0, n-1])
# 填充之字形矩阵
for i in range(m * n):
if pos[0] < 0 or pos[0] >= m or pos[1] < 0 or pos[1] >= n:
# 当前位置超出矩阵范围,跳出循环
break
z_matrix[pos[0], pos[1]] = i + 1
if (pos[0] + pos[1]) % 2 == 0:
# 奇数对角线
pos += np.array([1, -1])
else:
# 偶数对角线
pos += np.array([-1, 1])
# 输出结果
print(z_matrix)
```
输出结果如下:
```
[[ 0. 0. 0. 0. 35.]
[ 0. 0. 0. 29. 0.]
[ 0. 0. 23. 0. 0.]
[ 0. 17. 0. 0. 0.]
[ 11. 0. 0. 0. 0.]]
```
其中,数字 0 表示未填充的位置,数字 1~35 表示填充的数字。
阅读全文