将matlab fun函数在matlab APP的library complier中打包之后,在python中可以使用,但是无法调用匿名函数,比如 我有两个函数fun1 和fun2,
2条回答 默认 最新
FedXAI 2023-04-24 20:48关注要在Python中调用Matlab函数,您可以使用MATLAB Engine API for Python。有关如何使用此API的示例,请参见MathWorks文档。
由于Python和Matlab是不同的编程语言,因此无法直接使用Matlab匿名函数作为Python函数的参数。相反,您需要将匿名函数转换为Matlab函数,并将其作为单独的文件存储在磁盘上。然后,您可以使用MATLAB Engine API for Python将该函数加载到Matlab中,并在Python中调用它。
例如,假设您已经将fun1和fun2打包为可执行文件funlib.mlappinstall,并将其安装在了Matlab Compiler Runtime中。要在Python中调用fun1(@fun2,x0),您需要按照以下步骤操作:
1.将fun2保存为一个单独的.m文件,例如fun2.m。
2.使用MATLAB Engine API for Python将funlib.mlappinstall加载到Matlab中。例如,可以使用以下代码:
import matlab.engine eng = matlab.engine.start_matlab() eng.addpath('path/to/funlib') # 添加funlib的路径3.在Matlab中运行以下命令,以将fun2添加到Matlab搜索路径:
addpath('path/to/fun2')4.在Python中调用fun1,例如:
result = eng.fun1('fun2', x0)解决 无用评论 打赏 举报