Python纸浆-无法对非方形矩阵建模

Python纸浆-无法对非方形矩阵建模,python,optimization,pulp,Python,Optimization,Pulp,我在使用excel中的输入数组和Palm中的变量数组设置约束时遇到问题 该模型似乎只适用于方形矩阵,我的最终代码的矩阵为365x24。下面的代码有一个5x6的矩阵,当运行超出范围的索引时抛出一个错误。 我已经提供了我目前正在使用的代码 表11矩阵 91 37 36 38 33 16 1 36 59 29 23 4 25 74 72 39 69 1 22 68 48 70 12 41 98 86 75 16 99 12 第12页矩阵 59 6

我在使用excel中的输入数组和Palm中的变量数组设置约束时遇到问题

该模型似乎只适用于方形矩阵,我的最终代码的矩阵为365x24。下面的代码有一个5x6的矩阵,当运行超出范围的索引时抛出一个错误。

我已经提供了我目前正在使用的代码

表11矩阵

91  37  36  38  33  16
1   36  59  29  23  4
25  74  72  39  69  1
22  68  48  70  12  41
98  86  75  16  99  12
第12页矩阵

59  63  66  57  4   15
26  33  75  71  21  2
37  88  89  1   90  3
91  48  27  24  23  14
68  13  61  37  77  20
当更改为非方形矩阵时,给出以下错误消息:

索引器:列表索引超出范围


感谢您的帮助,因为我还在学习。

您读取数据的代码将生成6行5列。可变字典结构是5个键,而内部dict有6个键。因此,当您尝试同时对这两个对象进行迭代时,会出现索引错误。因为5 x 5与5 x 5相同,所以平方矩阵起作用,所以倒序并不重要

>>>YAHL
{
 0: {
   0: YAHL_0_0,                                                                                                         
   1: YAHL_0_1,                                                                                                            
   2: YAHL_0_2,                                                                                                            
   3: YAHL_0_3,                                                                                                            
   4: YAHL_0_4,                                                                                                            
   5: YAHL_0_5
 },                                                                                                          ...                                                                                                          4: {
  0: YAHL_4_0,                                                                                                         
  1: YAHL_4_1,                                                                                                            
  2: YAHL_4_2,                                                                                                            
  3: YAHL_4_3,                                                                                                            
  4: YAHL_4_4,                                                                                                            
  5: YAHL_4_5}} 
 }
}
>>>TEST
[[91.0, 1.0, 25.0, 22.0, 98.0],
 [37.0, 36.0, 74.0, 68.0, 86.0],
 [36.0, 59.0, 72.0, 48.0, 75.0],
 [38.0, 29.0, 39.0, 70.0, 16.0],
 [33.0, 23.0, 69.0, 12.0, 99.0],
 [16.0, 4.0, 1.0, 41.0, 12.0]]

>>>for i in range(YPER):
       for j in range(HE):
           print(TEST[i][j])
           print(YAHL[i][j])
91.0
YAHL_0_0
1.0
YAHL_0_1
25.0
YAHL_0_2
22.0
YAHL_0_3
98.0
YAHL_0_4
---------------------------------------------------------------------------
IndexError                                Traceback (most recent call last)
<ipython-input-14-a9538e188b1e> in <module>
      1 for i in range(YPER):
      2     for j in range(HE):
----> 3         print(TEST[i][j])
      4         print(YAHL[i][j])
      5

IndexError: list index out of range
>>YAHL
{
0: {
0:YAHL_0_0,
1:YAHL_0_1,
2:YAHL_0_2,
3:YAHL_0_3,
4:YAHL_0_4,
5:YAHL_0_5
},                                                                                                          ...                                                                                                          4: {
0:YAHL_4_0,
1:YAHL_4_1,
2:YAHL_4_2,
3:YAHL_4_3,
4:YAHL_4_4,
5:YAHL_4_5}
}
}
>>>试验
[[91.0, 1.0, 25.0, 22.0, 98.0],
[37.0, 36.0, 74.0, 68.0, 86.0],
[36.0, 59.0, 72.0, 48.0, 75.0],
[38.0, 29.0, 39.0, 70.0, 16.0],
[33.0, 23.0, 69.0, 12.0, 99.0],
[16.0, 4.0, 1.0, 41.0, 12.0]]
>>>对于范围内的i(YPER):
对于范围内的j(HE):
打印(测试[i][j])
打印(YAHL[i][j])
91
雅尔00
1
亚尔_0_1
25
亚尔_0_2
22
亚尔_0_3
98
亚尔(0)4
---------------------------------------------------------------------------
索引器回溯(最后一次最近调用)
在里面
1表示范围内的i(YPER):
2对于范围内的j(HE):
---->3打印(测试[i][j])
4份印刷品(亚尔[i][j])
5.
索引器:列表索引超出范围

要读取数据的代码将生成6行5列。可变字典结构是5个键,而内部dict有6个键。因此,当您尝试同时对这两个对象进行迭代时,会出现索引错误。因为5 x 5与5 x 5相同,所以平方矩阵起作用,所以倒序并不重要

>>>YAHL
{
 0: {
   0: YAHL_0_0,                                                                                                         
   1: YAHL_0_1,                                                                                                            
   2: YAHL_0_2,                                                                                                            
   3: YAHL_0_3,                                                                                                            
   4: YAHL_0_4,                                                                                                            
   5: YAHL_0_5
 },                                                                                                          ...                                                                                                          4: {
  0: YAHL_4_0,                                                                                                         
  1: YAHL_4_1,                                                                                                            
  2: YAHL_4_2,                                                                                                            
  3: YAHL_4_3,                                                                                                            
  4: YAHL_4_4,                                                                                                            
  5: YAHL_4_5}} 
 }
}
>>>TEST
[[91.0, 1.0, 25.0, 22.0, 98.0],
 [37.0, 36.0, 74.0, 68.0, 86.0],
 [36.0, 59.0, 72.0, 48.0, 75.0],
 [38.0, 29.0, 39.0, 70.0, 16.0],
 [33.0, 23.0, 69.0, 12.0, 99.0],
 [16.0, 4.0, 1.0, 41.0, 12.0]]

>>>for i in range(YPER):
       for j in range(HE):
           print(TEST[i][j])
           print(YAHL[i][j])
91.0
YAHL_0_0
1.0
YAHL_0_1
25.0
YAHL_0_2
22.0
YAHL_0_3
98.0
YAHL_0_4
---------------------------------------------------------------------------
IndexError                                Traceback (most recent call last)
<ipython-input-14-a9538e188b1e> in <module>
      1 for i in range(YPER):
      2     for j in range(HE):
----> 3         print(TEST[i][j])
      4         print(YAHL[i][j])
      5

IndexError: list index out of range
>>YAHL
{
0: {
0:YAHL_0_0,
1:YAHL_0_1,
2:YAHL_0_2,
3:YAHL_0_3,
4:YAHL_0_4,
5:YAHL_0_5
},                                                                                                          ...                                                                                                          4: {
0:YAHL_4_0,
1:YAHL_4_1,
2:YAHL_4_2,
3:YAHL_4_3,
4:YAHL_4_4,
5:YAHL_4_5}
}
}
>>>试验
[[91.0, 1.0, 25.0, 22.0, 98.0],
[37.0, 36.0, 74.0, 68.0, 86.0],
[36.0, 59.0, 72.0, 48.0, 75.0],
[38.0, 29.0, 39.0, 70.0, 16.0],
[33.0, 23.0, 69.0, 12.0, 99.0],
[16.0, 4.0, 1.0, 41.0, 12.0]]
>>>对于范围内的i(YPER):
对于范围内的j(HE):
打印(测试[i][j])
打印(YAHL[i][j])
91
雅尔00
1
亚尔_0_1
25
亚尔_0_2
22
亚尔_0_3
98
亚尔(0)4
---------------------------------------------------------------------------
索引器回溯(最后一次最近调用)
在里面
1表示范围内的i(YPER):
2对于范围内的j(HE):
---->3打印(测试[i][j])
4份印刷品(亚尔[i][j])
5.
索引器:列表索引超出范围

<>代码>如果您在这里没有得到答案,您可能会考虑询问(或.STACKExchange。com)。从错误消息的声音中,您试图引用超出列表末尾的元素。找出哪一行是thro