输入一个正奇数N,创建一个N*N的矩阵满足:
1. 矩阵中心的元素为N,其外层被N-1包围;
2. N-1的外层被N-2包围;
3. 依次循环,直到形成一个N*N的矩阵。
很容易可以计算得出,矩阵元素从内到外递减,最外层的元素为(N+1)/2.
我们可以使用numpy从外向内地填充矩阵;首先生成一个N*N的值为(N+1)/2的矩阵;再用一个(N-2)*(N-2)的值为(N+1)/2+1的矩阵覆盖其中心;再用一个(N-4)*(N-4)的值为(N+1)/2+2的矩阵覆盖其中心.......依次循环,直到将中心元素赋值为N,终止循环,输出矩阵。
def matrixcreation(N):
M=np.ones((N,N))
for i in range(0,int((N+1)/2)):
#从外到内填充
M[i:N-i,i:N-i]=(N+1)/2+i
return M
文章来源:https://www.toymoban.com/news/detail-541429.html
M[i:N-i,i:N-i]:矩阵切片文章来源地址https://www.toymoban.com/news/detail-541429.html
到了这里,关于【python】使用numpy创建同心矩阵的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!