Программа 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"}] &
Затем сохраненныйX Python был сохранен в другой текстовый файл. Однако при работе с pyomo появилась ошибка; Я спросил здесь , и ответ состоял в том, чтобы сохранить результат в файле json вместо текста.
Export["savedWindXPython.txt", savedXPython];
Export["savedWindXPythonJ.json", savedXPython, "ExpressionJSON"];
Теперь, в части pyomo, текстовый файл был первоначально прочитан как
g = open("savedWindXPython.txt","r")
b=f.readline()
g.close
позже, после этой темы , 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) : return m.Wind_lammda [i] == b m.Wind_lammda_const = Constraint (mN, rule = Wind_lammda_definition
в случае исходного текстового файла
Код, однако, не работает. AttributeError: 'str' object has no attribute 'is_relational'
, ошибка, которая помешала мне просто прочитать переменную из текстового файла, также появляется в случае json.
Кажется, что использование формата json не помогло. Может кто-нибудь сказать мне если реализация json была сделана неправильно?