我有一些MATLAB脚本,例如:
function mat_foo(varargin)
params.x = 'aaa';
params = parse_input(params, varargin);
disp(params.x);
endparse_input是我拥有的一个函数,它可以转换来自varargin的数据,并覆盖'params'结构中的默认值。
我编译了这个函数,我想从python中调用它,我用下面的方法:
subprocess.check_call(['$/mat_foo.app/Contents/MacOS/applauncher x bbb'], shell=True)这会将params.x设置为'bbb',并且运行良好。
我的问题是,每次我想调用一个编译好的MATLAB时,它都会初始化MCR,大约需要8-10秒。我的问题是,是否有一种方法可以一次初始化MCR并快速使用它多次?我在OSX上使用MATLAB R2013a和python2.7.5。
发布于 2015-02-16 23:58:09
可以按照here的描述在一个共享库中编译你的代码。您可以使用以下命令在python中加载此库
mymatlab = cdll.LoadLibrary("mymatlab_library.so")并通过调用函数初始化并加载MCR
mymatlab.initializeMyLibrary()这可能什么也不做,或者只使用matlab的disp函数将文本打印到控制台。
对库的后续函数调用应该立即执行。
另请参阅此Mathworks discussion。
https://stackoverflow.com/questions/25424058
复制相似问题