我想构建一个6×9的矩阵,用一种特殊的方式,输入0和1,如下所示。在第0行列中,0到2应该是1,在第一行列中,3到5应该是1,在第二行列中,6到8应该是1,所有其他条目都是0。在第三行中,元素0、3、6应该是一个,另一个应该是零。在第四行中,元素1、4、7应为一,其他元素应为零。在第五行中,2、5、8应为1,其余应为0。一半的行按一种方式输入值1,另一半的行按不同的步骤输入值1。如果前10行遵循上面提到的一个过程,而后半行遵循不同的过程,那么如何将此扩展到20 x 100
6x9 by matrix外观如下
[[1,1,1,0,0,0,0,0,0],
[0,0,0,1,1,1,0,0,0],
[0,0,0,0,0,0,1,1,1],
[1,0,0,1,0,0,1,0,0],
[0,1,0,0,1,0,0,1,0],
[0,0,1,0,0,1,0,0,1]]
EDIT: Code I used to create this matrix:
import numpy as np
m=int(input("Enter the value of m, no. of points = "))
pimatrix=np.zeros((2*m +1)*(m**2)).reshape((2*m+1),(m**2))
for i in range(2*m + 1):
for j in range(m**2):
if((i<m) and ((j<((i+1)*m) and j>=(i*m)))):
pimatrix[i][j]=1
if (i>(m-1)):
for k in range(-1,m-1,1):
if(j == i+(k*m)):
pimatrix[i][j]=1
if i==2*m:
pimatrix[i][j]=1
print(pimatrix)
最好的方法取决于您计划遵循的规则,但一种简单的方法是将数组初始化为零数组:
然后,您可以编写逻辑来循环相应的行,并根据需要设置1。您只需通过其坐标访问数组的任何元素:
结果:
如果没有一般规则,很难说你想要的逻辑到底是什么,但是假设这些规则:数组的上半部分在每一个连续的行上有三个1的运行,从左上角开始,在每次运行结束时向下移动一行,直到它到达上半部分的底部,在那里它环绕到顶部;下半部有一个运行的单一的,遵循相同的模式。你知道吗
用你的例子来实现这一点:
结果:
相关问题 更多 >
编程相关推荐