[英]Unwanted List pass by Reference in Function
我有以下代碼:
import scipy
import scipy.linalg
def LU(A):
n = scipy.shape(A)[0]
U = A
L = scipy.identity(n)
for j in range(1,n):
for i in range(j+1,n+1):
L[i-1,j-1] = U[i-1,j-1]/U[j-1,j-1]
for k in range(j,n+1):
U[i-1,k-1] = U[i-1,k-1] - L[i-1,j-1] * U[j-1,k-1]
return L,U
a = scipy.matrix([[1.0,1.0],[2.0,1.0]])
L,U = LU(a)
print L
print U
print a
print scipy.dot(L,U)
我如何通過LU()中的U指向A所在的位置並通過更改U也更改A來通過引用來修復不必要的傳遞。
您可以通過立即進行復制來防止對A
進行修改:
import copy
def LU(A):
n = scipy.shape(A)[0]
U = copy.deepcopy(A)
L = scipy.identity(n)
# ...
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.