我有一些MATLAB脚本,例如:
function mat_foo(varargin)
params.x = 'aaa';
params = parse_input(params, varargin);
disp(params.x);
end
parse_input
是我的一个函数,可以转换varargin
的数据并覆盖'params'
struct的默认值。
我编译了这个函数,我想从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和python 2.7.5
答案 0 :(得分:2)
可以按照here所述在共享库中编译代码。您可以使用
在python中加载此库mymatlab = cdll.LoadLibrary("mymatlab_library.so")
并通过调用函数
初始化并加载MCRmymatlab.initializeMyLibrary()
可能无效或仅使用matlab的disp
函数将文本打印到控制台。
对库的后续函数调用应立即执行。