在Matlab中调用Python程序

背景

现有两段程序,分别是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调用exe
Python程序

2 不太成功的方法

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

3 总结

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

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

  • 3
    点赞
  • 35
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值