在Matlab中调用Python程序

在Matlab中调用Python程序

  • 背景
  • 1 成功的方法
    • 1.1 Python打包exe
      • 1.1.1 打包方式
      • 1.1.2 补充说明
    • 1.2 Matlab调用exe
  • 2 不太成功的方法
  • 3 总结

背景

现有两段程序,分别是Matlab和Python编写,因为时间着急或者懒不想把Python程序改成Matlab,或者Matlab程序改成Python,所以最直接的方法就是调用。此处记录Matlab调用Python程序的方式。

1 成功的方法

基于链接link 中第2种方法进行扩充,即“将python程序打包成exe,并通过matlab调用exe”的方式。

1.1 Python打包exe

1.1.1 打包方式

(1)安装第三方库pyinstaller(安装方式:cmd中输入pip install pyinstaller)
(2)在cmd中输入pyinstaller -F E:\test.py(路径根据情况修改)
(3)注:在打包过程中可能会出现“UnicodeDecodeError: ‘utf-8’ codec can’t decode byte 0xce in position 130: invalid continuat”错误,解决方式为删除程序所有中文字符+在控制台中输入 chcp 65001后再打包,参考链接link

1.1.2 补充说明

上述方式由于在打包过程中需要打包关联的第三方库,因此打包后的文件会很大(通常几百M);为了减小打包文件体积,可只打包所需的第三方库,为此,需要创建一个只安装了所需第三方库的虚拟环境,在此虚拟环境中进行打包(原因:如果你没有在虚拟环境中安装pyinstaller,你同样可以使用pyinstaller命令,但是调用的是你系统原本的那个python编译器,内含很多关联库,导致即使在虚拟环境中,你打包的exe文件仍然非常大)。参考链接link 中的结论部分。
但此种方式本人尝试后发现仍旧很大(直接打包为302M,虚拟环境中打包为230M,减小得不明显,可能原因是如果用了numpy或者pandas包,会需要很多衍生的包,因此比较大;并且打包后的文件还无法运行,可能是我哪儿没弄好)。

1.2 Matlab调用exe

示例如下(注:此时python程序一定是可以直接运行,而不是需要输入参数的):
在Matlab中调用Python程序_第1张图片
在Matlab中调用Python程序_第2张图片

2 不太成功的方法

通过Matlab直接调用python程序,参考链接link 中第1种方法,讲解很清楚。
但注意:该方法可调用简单的Python程序,如果Python程序中涉及很多第三方库,或者程序本身涉及很多函数,就容易运行不成功。

3 总结

至此,Matlab调用Python就已经能够实现。

【整理不易,转载请注明出处和相关链接,否则必究!】

你可能感兴趣的:(电脑相关,python,matlab)