我可以创建一个大的零矩阵,并用矩阵区域替换矩形区域:
import numpy as np
z = np.zeros((400,400))
z[192:206,196:202] = 1
如何用矩阵替换矩阵中的圆形区域?圆的半径可以任意大。
答案 0 :(得分:1)
这是一种执行所要求的方法,指定圆心和半径:
import numpy as np
import matplotlib.pyplot as plt
z = np.zeros((400,400))
# specify circle parameters: centre ij and radius
ci,cj=232,145
cr=20
# Create index arrays to z
I,J=np.meshgrid(np.arange(z.shape[0]),np.arange(z.shape[1]))
# calculate distance of all points to centre
dist=np.sqrt((I-ci)**2+(J-cj)**2)
# Assign value of 1 to those points where dist<cr:
z[np.where(dist<cr)]=1
# show result in a simple plot
fig=plt.figure()
ax=fig.add_subplot(111)
ax.pcolormesh(z)
ax.set_aspect('equal')
plt.show()
我使用ax.set_aspect('equal')
来表明它确实是一个圆形区域。我留下其他方面,比如检查圈子是否完全在域的范围内,由你决定。