mathematica程序将基本正弦之和作为输出返回。向量的第一个元素是
-19.9959 Sinc[0.0418879 (0. + t)] Sinc[0.0897598 (-65. + u)]
该变量保存在文本文件中;但是,必须在pyomo中将其作为一个变量读取,因此StringReplace
用于使此变量适应python的语法[]
savedXPython = Import["savedWindX.txt"] // StringReplace[#, {"[" -> "(", "]" -> ")", "t" -> "m.lammda[i]*180/np.pi", "u" -> "m.phi[i]*180/np.pi"}] &
然后,保存的XPython被保存到另一个文本文件。但是,在使用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_definition(model,i):返回m.Wind_lammda [i] == bm.Wind_lammda_const =约束(m.N,规则= Wind_lammda_definition
如果是原始文本文件,则>
但是该代码不起作用。 AttributeError: 'str' object has no attribute 'is_relational'
,导致我无法从文本文件中读取变量的错误也出现在json案例中。
似乎使用json格式没有帮助。有人可以告诉我json实现是否做错了吗?
mathematica程序将基本正弦之和作为输出返回。向量的第一个元素是-19.9959 Sinc [0.0418879(0. + t)] Sinc [0.0897598(-65。+ u)]变量保存在文本中...
从文件中读取一行时,Pyhton将始终返回一个字符串。如果1
是您行中唯一的内容,则返回的值将等于"1"
,而不是1
。可以用a = float(a)
解决,因为您想在约束中使用数字值。这只会将您的a
字符串转换为浮点数。