1

matlabでcreate_empty_universumという名前の関数を作成したいと思います。この関数は、すべての要素がゼロの新しいユニバーサムを作成します。このユニバーサムは、指定された行列のnxm(行の長さ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

しかし、私の新しいマトリックスは残っています[]これはどうやって来るのですか?

4

1 に答える 1

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)]無関係な行を持つために使用する必要があります。

于 2013-03-12T19:14:40.680 に答える