mathematica中构造的数据在pyomo中的反序列化

2024-09-30 16:34:29 发布

您现在位置:Python中文网/ 问答频道 /正文

mathematica程序返回基数正弦之和作为输出。向量的第一个元素是

-19.9959 Sinc[0.0418879 (0. + t)] Sinc[0.0897598 (-65. + u)]

变量保存在文本文件中;但是,这必须在pyomo中作为变量读取,因此使用StringReplace使该变量适应python的grammar

savedXPython = 
 Import["savedWindX.txt"] // 
  StringReplace[#, {"[" -> "(", "]" -> ")", 
     "t" -> "m.lammda[i]*180/np.pi", "u" -> "m.phi[i]*180/np.pi"}] &

然后,savedXPython被保存到另一个文本文件中。但是,在使用pyomo时出现了一个错误I asked here答案是将结果保存在json文件而不是文本中

Export["savedWindXPython.txt", savedXPython];
Export["savedWindXPythonJ.json", savedXPython, "ExpressionJSON"];

现在,在pyomo部分,文本文件最初被读取为

g = open("savedWindXPython.txt","r")
b=f.readline()
g.close

稍后,在this thread之后,json被解读为

f = open("savedWindXPythonJ.json","r")
a=f.readline()
f.close

然后,pyomo代码中的变量被定义为

def Wind_lammda_definition(model, i):
    return m.Wind_lammda[i] == a
m.Wind_lammda_const = Constraint(m.N, rule = Wind_lammda_definition)

对于json文件或 def Wind_lammda_定义(型号i): 返回m.Wind_lammda[i]==b m、 风荷载=约束(m.N,规则=风荷载定义

对于原始文本文件

但是,代码不起作用。AttributeError: 'str' object has no attribute 'is_relational',阻止我仅从文本文件读取变量的错误也出现在json案例中

使用json格式似乎没有什么帮助。有人能告诉我json实现是否做错了吗


Tags: 文件txtjson定义错误nppiexport
1条回答
网友
1楼 · 发布于 2024-09-30 16:34:29

从文件中读取行时,Pyhton将始终返回字符串。如果1是行中的唯一内容,则返回值将等于"1",而不是1。这可以用a = float(a)来解决,因为您希望在约束中使用数值。这将简单地将a字符串转换为浮点

相关问题 更多 >