2017-05-07 7 views
0

行列(nXn)を単独で掛けるプログラムを書く必要があります。 私はプロセス中に最大値と最小値を計算しなければなりません。python(H.W)で行列を単独で掛ける

これは私のコードです:

import csv 
import time 

start= time.time() 

matrix = [] 

with open('matrix.csv', newline='') as csvfile: 
    exc1 = csv.reader(csvfile, delimiter=',', quotechar='|') 
    for row in exc1: 
     matrix.append(row) 

matrix_length=len(matrix) 

min = 9999999999999999999999999999999999999999999 
max = 0 

result = [[None]*matrix_length for _ in range(matrix_length)] 

for i in range(matrix_length): 
    for j in range(matrix_length): 
     for k in range(0,matrix_length): 
      result[i][j] += int(matrix[i][k]) * int(matrix[k][j]) 
     if (int(result[i][j])<min): 
       min = int(result[i][j]) 
     if (int(result[i][j])>max): 
       max = int(result[i][j])  

done=time.time() 

print("max:",max) 
print("min:",min) 
print(done-start) 

が、これは誤りです:

File "<ipython-input-15-a8472dbf81c8>", line 24, in <module> 
    result[i][j] += int(matrix[i][k]) * int(matrix[k][j]) 

TypeError: unsupported operand type(s) for +=: 'NoneType' and 'int' 

あなたは問題が何であるかを理解していますか?

+0

結果マトリックスのタイプは「なし」です。 Noneの代わりに0に初期化してみてください – Nuageux

答えて

0

結果マトリックスをなしで初期化しています。代わりにこれを試してみてください:

result = [[0]*matrix_length for _ in range(matrix_length)] 
関連する問題