You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在GEKKO中通过循环创建不同长度的变量数组

Gekko循环创建不同长度变量数组的实现方案

你可以通过列表或字典存储生成的数组,完全满足动态批量创建的需求,以下是两种常用实现方案:

方案1:列表存储(适合按索引顺序调用)

将所有生成的变量数组按长度列表的顺序存入列表,批量处理时调用更方便:

from gekko import GEKKO

lengths = [10,20,30]
m = GEKKO()

var_arrays = []
for l in lengths:
    var_arrays.append(m.Array(m.Var, l))

调用说明:var_arrays[0] 对应长度为10的数组(原需求中的array1),var_arrays[1]对应长度为20的数组(原需求中的array2),以此类推。

方案2:字典存储(适合按名称调用)

如果需要和你示例中一致的array1、array2命名规则,用字典存储更灵活,不会污染全局命名空间:

from gekko import GEKKO

lengths = [10,20,30]
m = GEKKO()

var_arrays = {}
for idx, l in enumerate(lengths, start=1):
    var_arrays[f"array{idx}"] = m.Array(m.Var, l)

调用说明:var_arrays['array1'] 对应长度为10的数组,var_arrays['array2']对应长度为20的数组,完全匹配你预期的命名效果。

如果确实需要直接生成全局可调用的array1、array2变量,可以用以下方法(不推荐,容易产生命名冲突):

from gekko import GEKKO

lengths = [10,20,30]
m = GEKKO()

for idx, l in enumerate(lengths, start=1):
    globals()[f"array{idx}"] = m.Array(m.Var, l)

内容的提问来源于stack exchange,提问作者Hampus Alfredsson

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.03 23:06:01