Возврат значений из matlab в python (как словарь?)
Я использую движок Matlab для Python. Моя цель - передать некоторую информацию в мой скрипт Matlab из Python, а затем сохранить результат. Я смог сделать это, если бы я создал массив Matlab всех значений, которые я хотел, но мне бы очень хотелось словарь (чтобы я мог вспомнить, какое значение идет с какой переменной или если я изменю свой скрипт Matlab в будущем). Вот что я попробовал:
Функция MATLAB:
function out = mymatlabfunc(x,y)
# compute stuff
out = py.dict('interesting variable 1', x_out, 'interesting variable 2', y_out, ...);
и в питоне:
eng = matlab.engine.start_matlab()
xdata, ydata = matlab.double(x), matlab.double(y)
resultdict = eng.mymatlabfunc(xdata,ydata)
К сожалению, это не возвращает мой словарь, но объект matlab.ob, с которым я не знаю, что делать. Можно ли вернуть мой словарь, или я должен просто вернуть цифры из matlab и сделать мой словарь на python?
2 ответа
Я понял это с сайта математики. Просто создайте структуру matlab для возвращаемого значения вашего скрипта, и python увидит его как словарь. Итак, мой код Matlab теперь:
function out = mymatlabfunc(x,y)
# compute stuff
out = struct('interesting variable 1', x_out, 'interesting variable 2', y_out, ...);
Вы можете сделать dir (resultdir), чтобы узнать, какие методы доступны.