qq_43921069 2023-04-24 20:34 采纳率: 0%
浏览 7

python调用matlab函数

将matlab fun函数在matlab APP的library complier中打包之后,在python中可以使用,但是无法调用匿名函数,比如 我有两个函数fun1 和fun2,

fun1(@fun2,x0)在matlab中是可行的,但是我不知道在python中如何表示。

  • 写回答

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)
    
    
    评论

报告相同问题?

问题事件

  • 创建了问题 4月24日