我陷入了从矩阵中检索值的过程。我使用MatLab程序作为参考。
例如。 delv(2,k) = dell{2,K}(1,1)
。
这意味着,delv(2,k)
的值是矩阵dell{2,K}
的第1列和第1行的值。
我正在使用np.matrix
而我仍然在从dell(2,k)
检索第1行第1列的值。
def ww(j,k):
return npy.matrix.I(alfa(j,k))*(rr(j,k)-(BJ(j,k)*ww(j-1,k)))
def dell(j,k):
if j == np:
return ww(np,k)
else:
return ww(j,k) - (gamma(j,k)*dell(j+1,k))
def delf(j,k):
if j == 1:
return 0
elif j == 2:
# This should be returning the 2nd row 1st column value of dell(2,k)
return dell(2,k) (2,1)
else:
return dell(j,k)
def delu(j,k):
if j == 1 or j == np:
return 0
elif j == np-1:
return dell(j,k)
def delv(j,k):
if j == 1:
return dell(2,k)
elif j == 2:
return dell(2,k)
else:
return dell(j,k)
答案 0 :(得分:2)
而不是:
return dell(2,k) (2,1)
您应该使用:
return dell(2, k)[1,1]
不同之处在于您应使用[]
而不是()
来获取数组或矩阵的[row, col]
值。请注意,[1,1]
实际上是第二个行和第二个列:
In [201]: a = npy.array([[1,2],[3,4]])
In [202]: a
Out[202]:
array([[1, 2],
[3, 4]])
In [203]: a[1,1]
Out[203]: 4
In [204]: a[0,0]
Out[204]: 1
In [205]: a[0,1]
Out[205]: 2
您可以访问整行或col:
# the first row
In [206]: a[0]
Out[206]: array([1, 2])
# the second row
In [207]: a[1]
Out[207]: array([3, 4])
# the second column
In [208]: a[:,1] # the : gives all rows here, the 1 gets second column
Out[208]: array([2, 4])
# the first row again, using a `:` even though it's not required
In [209]: a[0,:] # here the : gives all columns (it can be left off as in line 206)
Out[209]: array([1, 2])