我想将在每个循环中计算的值存储在一个数组中。
Q2 = np.array([20, 25, 30, 25, 20, 15, 10, 15, 20, 25, 30, 25, 20])
Q3 = np.array([40, 45, 50, 45, 40, 35, 30, 35, 40, 45, 50, 45, 40])
for i in range(13):
m = GEKKO() # create GEKKO model
x = m.Var(value=0) # define new variable, initial value=0
y = m.Var(value=0) # define new variable, initial value=1
z = m.Var(value=0)
m.Equations([x - y == Q2[i], y + z == Q3[i],
K[0]*x**2 + K[1]*y**2 - K[2]*z**2 == 0]) # equations
m.solve(disp=False) # solve
print([x.value, y.value, z.value]) # print solution
对于每个 Q(i),我希望得到:x.value(i), y.value(i), z.value(i)
现在它会打印所有答案,但我希望它存储在矩阵中。
请您参考如下方法:
与前面的答案类似,您也可以使用 numpy 数组和列表来执行此操作。由于简单,我通常使用嵌套列表。
这是一个例子:
my_list = []
for i in range(3):
my_list.extend([i,i*2,i*3])
print(my_list)
OUTPUT
[[0, 0, 0], [1, 2, 3], [2, 4, 6]]
