(Python) 无法正确获得矩阵标量乘法输出
(Python) Can't get matrix scalar multiplication output correct
我正在尝试将矩阵乘以标量,但无法正确输出。
m, n = 3, 3
scalar = 5
A = [ [1, 0, 0],
[0, 1, 0],
[0, 0, 1] ]
B = []
for i in range(n):
B.append([])
for j in range(n):
B[i].append(A[i][j] * scalar)
print (B)
我收到的输出是:
[[5, 0, 0]]
[[5, 0, 0], [0, 5, 0]]
[[5, 0, 0], [0, 5, 0], [0, 0, 5]]
我想要的输出是:
[ [5, 0, 0],
[0, 5, 0],
[0, 0, 5] ]
我怎么去那里?
编辑:您的建议奏效了,谢谢大家!
可以使用numpy
吗?
它是这样工作的:
import numpy as np
scalar = 5
a = [[1, 0, 0],
[0, 1, 0],
[0, 0, 1]]
print(np.array(a) * scalar)
在不依赖另一个 module/library 的情况下,最好的办法是在循环外处理打印。这是一种方法:
for row in B:
print(row)
我的解决方案:
m, n = 3, 3
scalar = 5
A = [ [1, 0, 0],
[0, 1, 0],
[0, 0, 1] ]
B = []
for row_index,row in enumerate(A):
for column_index,column in enumerate(row):
A[row_index][column_index] *= scalar
for i in A:
print(i)
输出:
[5, 0, 0]
[0, 5, 0]
[0, 0, 5]
注意:我根本没有使用 B
。
你们非常亲密!这是我的解决方案
A = [[1,0,0], [0,1,0], [0,0,1]]
B = []
m,n = 3,3
scalar = 5
for i in range(n):
B.append([])
for j in range(n):
result = A[i][j] * scalar
B[i].append(result)
#B = [[5, 0, 0], [0, 5, 0], [0, 0, 5]]
for i in B:
print(i)
然后你的输出是:
[5, 0, 0]
[0, 5, 0]
[0, 0, 5]
我正在尝试将矩阵乘以标量,但无法正确输出。
m, n = 3, 3
scalar = 5
A = [ [1, 0, 0],
[0, 1, 0],
[0, 0, 1] ]
B = []
for i in range(n):
B.append([])
for j in range(n):
B[i].append(A[i][j] * scalar)
print (B)
我收到的输出是:
[[5, 0, 0]]
[[5, 0, 0], [0, 5, 0]]
[[5, 0, 0], [0, 5, 0], [0, 0, 5]]
我想要的输出是:
[ [5, 0, 0],
[0, 5, 0],
[0, 0, 5] ]
我怎么去那里?
编辑:您的建议奏效了,谢谢大家!
可以使用numpy
吗?
它是这样工作的:
import numpy as np
scalar = 5
a = [[1, 0, 0],
[0, 1, 0],
[0, 0, 1]]
print(np.array(a) * scalar)
在不依赖另一个 module/library 的情况下,最好的办法是在循环外处理打印。这是一种方法:
for row in B:
print(row)
我的解决方案:
m, n = 3, 3
scalar = 5
A = [ [1, 0, 0],
[0, 1, 0],
[0, 0, 1] ]
B = []
for row_index,row in enumerate(A):
for column_index,column in enumerate(row):
A[row_index][column_index] *= scalar
for i in A:
print(i)
输出:
[5, 0, 0]
[0, 5, 0]
[0, 0, 5]
注意:我根本没有使用 B
。
你们非常亲密!这是我的解决方案
A = [[1,0,0], [0,1,0], [0,0,1]]
B = []
m,n = 3,3
scalar = 5
for i in range(n):
B.append([])
for j in range(n):
result = A[i][j] * scalar
B[i].append(result)
#B = [[5, 0, 0], [0, 5, 0], [0, 0, 5]]
for i in B:
print(i)
然后你的输出是:
[5, 0, 0]
[0, 5, 0]
[0, 0, 5]