我试图模仿克莱姆的规则来处理不定数量的变量。这就是我目前所拥有的
def cramers(n)
matrix = []
for i in range(0, n):
matrix.append([])
for j in range(0, n+1):
matrix[i].append(0)
matrix[i][j] = float(input("V" + str(i+1) + str(j+1) + ": "))
#n = 2, V11 = 1, V12 = 2, V13 = 3, V21 = 4, V22 = 5, V23 = 6
mat = np.array(matrix)
matA = mat[0:n, 0:n]
matB = mat[0:n, n:]
matATrans = matA.transpose()
matBTrans = matB.transpose()
对于n=2,这些是matATrans和matBTrans的样本输入值:
matATrans = [[1. 4.], [2. 5.]]
matBTrans = [3. 6.]
我的问题是,如何生成一个长度为n=2的numpy数组mat,其值包含这个值
mat = [[[3. 6.],[2. 5.]],[[1. 4.],[3. 6.]]]
基本上,matATrans的第(n-1)个元素被matBTrans取代。我想可以用forloop来实现。这是我的尝试
for i in range(n):
matATrans[i] = matBTrans
print(matATrans)
结果是:
[3. 6.],[2. 5.]
[3. 6.],[3. 6.]
显然,这是错误的,因为matATrans的内容在第一个循环中被改变了。而且,它仍然没有附加到mat矩阵
请开导我。谢谢
在python中,当您将一个列表分配给一个新变量时,您只是创建了对同一对象的另一个引用,这就是当前行为的原因。解决此问题的一种方法是使用
copy
方法,并在每个循环中复制矩阵A相关问题 更多 >
编程相关推荐