我已经通过Python中的matlab.engine分离了写入Matlab工作区的问题。有人可以帮忙吗?
每当我调用eng.workspace时,我'超时',就是Matlab进入无限繁忙状态并无法继续使用Python或Matlab中的脚本,实际上它永远不会离开eng.workspace调用
当我按下ctrl-c时,命令仍然执行并且变量存储在matlab工作区中,但在该行之后没有任何内容被执行。
上下文代码:
%In Matlab
%Share the current Matlab Session
testShared = matlab.engine.isEngineShared;
if ~testShared
matlab.engine.shareEngine('MATLABShared001');
end
%Call the python script
disp('Starting call to Python Script')
cmdString = 'python test.py';
status = system(cmdString);
disp('Finished call to Python')
#In Python
import matlab.engine
names = matlab.engine.find_matlab()
eng = matlab.engine.connect_matlab(names[0])
eng.workspace['abcd'] = 10
eng.workspace['test'] = 'it worked!'
#No need to quit as python auto closes at end (and problem is before this)
如果手动运行这个python脚本(pyCharm或cmd \ python),那么一切都运行完美,两个变量完美地位于matlab工作区中。但是,当从matlab以编程方式运行时,它会被第一个eng.workspace捕获并且不会继续。
输出(Matlab): Matlab Command Window and Workspace Results of Ctrl-C Termination
感谢任何帮助。
编辑:把它变成一个问题,而不是一个声明