我想在matlab中创建一个名为create_empty_universum的函数。这个函数将使所有元素都为零的新Universum。这个宇宙必须具有给定矩阵的n×m(n长度为行,m长度为列)
例如,。
I have a matrix m given.
I = len(m) #I is the amount of rows
J = len(m[0]) #J is the amount of columns
New_matrix =[]
row= I*[0]
index = 0
def create_empty_universum():
while index < J :
New_matrix.append(row)
index +=1
return New_matrix
但我的新矩阵仍然是[]这是怎么来的?
答案 0 :(得分:1)
您想在列表中使用乘法运算符:
>>> cols = 4
>>> rows = 3
>>> [0] * cols
[0, 0, 0, 0]
>>> [[0] * cols] * rows
[[0, 0, 0, 0], [0, 0, 0, 0], [0, 0, 0, 0]]
如果你真的想使用辅助函数:
def create_empty_universum(cols, rows, cell=0):
return [[cell] * cols] * rows
请参阅@ tobias_k的评论:您应该使用[[0]*cols for i in range(rows)]
来获得不相关的行。