学习小白遇到创建三维数组后,索引赋值时出现“创出索引范围”的错误
1出现错误
创建11*11*5的矩阵,然后对其进行索引
# Y_ijk
Y = [[[[] for i in range(data.nodeNum)] for j in range(data.nodeNum)] for k in range(data.n_UAV)]
for i in range(data.nodeNum):
for j in range(data.nodeNum):
for k in range(data.n_UAV):
name3 = 'Y_' + str(k) + '_' + str(i) + '_' + str(j)
Y[i][j][k] = model.addVar(0, 1, vtype = GRB.BINARY, name = name3)
出现“list index out of range ”错误
2解决办法
对三维矩阵y[i,j,k]索引的理解:
第一维 i:确定是哪一个二维矩阵
第二维 j:每一个二维矩阵的行
第三维k:每一个二维矩阵的列
但创建矩阵时,i:每一个矩阵的列数,j:每一个矩阵的行数,k:二维矩阵的个数
因此,在对三维数组索引赋值时,应改为文章来源:https://www.toymoban.com/news/detail-801402.html
Y = [[[[] for i in range(5)] for j in range(6)] for k in range(3)]
for k in range(3):
for j in range(6):
for i in range(5):
name3 = 'Y_' + str(k) + '_' + str(i) + '_' + str(j)
Y[k][j][i] = model.addVar(0, 1, vtype = GRB.BINARY, name = name3)
参考:Python新建三维数组并赋值_python三维数组_小猪崽子~的博客-CSDN博客文章来源地址https://www.toymoban.com/news/detail-801402.html
到了这里,关于python三维数组及索引的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!