我被困在从矩阵中检索值的过程中

2024-05-19 01:39:03 发布

您现在位置:Python中文网/ 问答频道 /正文

我被困在从矩阵中检索值的过程中。我用一个MatLab程序作为参考。 例如。delv(2,k) = dell{2,K}(1,1)。 也就是说,delv(2,k)的值是来自矩阵dell{2,K}的第一列和第一行的值。 我使用的是np.matrix,我一直在从dell(2,k)检索第一行第一列的值。你知道吗

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)

Tags: 程序returnif过程defnp矩阵else
1条回答
网友
1楼 · 发布于 2024-05-19 01:39:03

而不是:

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

您可以访问整行或整列,如下所示:

# 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])

相关问题 更多 >

    热门问题