如何正确索引元组

时间:2018-01-31 07:18:44

标签: python python-2.7

我必须使用以下代码形成Jacobi矩阵。雅可比行是函数残差的值。残差。并且每个外环都将列添加到Jacobi中。问题是我不知道如何在变量'Rop'上使用索引。

我在matlab中使用了给定的索引,它在那里工作得很好。但我想我需要为python改变它。

    for i1 in range(1,nxt-1):
    for j1 in range(1,nyt-1):
    Rop=();Rsp=();Rsgp=()
    pit[i1,j1]=pit[i1,j1]+ep;
    sit[i1,j1]=sit[i1,j1]+es;
    sgit[i1,j1]=sgit[i1,j1]+es;
    for i in range(1,nxt-1):#inner loop to calculate perturbed residual
         for j in range(1,nyt-1):
            if (index[i,j]!=0):

             rop,rwp,rgp=residual.residual(pit,sw,sg,i,j,boold,bwold,bgold,
                                    swold,sgold,rsoold,rswold,index, 
                                    delx, dely, depth, phi, kx, ky, 
                                    ax, ay, h, delt, qo, nxt, nyt, welin, 
                                    Vb, pvtgas, pvtoil, pvtw, relpermgo, 
                                    relpermow, time, it,fmult)
               Rop[count:count+2,col]+=(rop/ep,rwp/ep,rgp/ep)

            rop,rwp,rgp=residual.residual(po,sit,sg,i,j,boold,bwold,bgold,
                                    swold,sgold,rsoold,rswold,index, 
                                    delx, dely, depth, phi, kx, ky, 
                                    ax, ay, h, delt, qo, nxt, nyt, welin, 
                                    Vb, pvtgas, pvtoil, pvtw, relpermgo, 
                                    relpermow, time, it,fmult)
               Rop[count:count+2,col+1]+=(rop/es,rwp/es,rgp/es)

             rop,rwp,rgp=residual.residual(po,sw,sgit,i,j,boold,bwold,bgold,
                                    swold,sgold,rsoold,rswold,index, 
                                    delx, dely, depth, phi, kx, ky, 
                                    ax, ay, h, delt, qo, nxt, nyt, welin, 
                                    Vb, pvtgas, pvtoil, pvtw, relpermgo, 
                                    relpermow, time, it,fmult)
               Rop[count:count+2,col+2]+=(rop/es,rwp/es,rgp/es)

1 个答案:

答案 0 :(得分:0)

MATLAB使用基于1的索引,而Python使用基于0的索引。

尝试将所有范围从range(1,nxt-1)格式更改为range(nxt),从而为您提供从0nxt-1的序列。长格式为range(0, nxt)

根据您的代码很难判断您要停止的位置,但如果您想在nxt-1之前停止,只需相应地调整范围的最后一个参数。

我不确定如何通过Rop[count:count+2,col]向您提供建议,因为您还没有说明count的定义方式。