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'
あなたは問題が何であるかを理解していますか?
結果マトリックスのタイプは「なし」です。 Noneの代わりに0に初期化してみてください – Nuageux