python如何调用matlab python package库matlab转python安装包调用使用简单示例

说明(废话)

之前没有进行python调用过matlab,前面用matlab engine for python可以通过调用matlab的源码文件的形式可以调用工程,但是这又有一个问题,就是在运行的时候必须提供python和matlab的全部源码
该文章是通过matlab源码转python package的方式调用。

我的演示版本是
matlab2022a
python3.9
pycharm2020.3专业版

解决方案

matlab代码

这只是一个测试示例,matlab代码可以更复杂…

function sum = myadd(a, b)
    sum = a + b;
end

matlab 转python package

将matlab代码转python package
在这里插入图片描述
添加m文件,转python package
在这里插入图片描述
点上面的绿色勾勾,即可…

在这里插入图片描述
生成的是这个setup.py 和myadd目录

使用方法一(不推荐)

看到setup.py,就可以知道,又需要安装,怎么安装其实readme.txt已经有说明了。
在这里插入图片描述
其实,只要将setup.py中的
在这里插入图片描述
将R2022改为1.0即可
再次执行安装命令即可

python setup.py build
python setup.py install

对了,这个命令在setup.py所在的目录运行
执行完后,会将该库拷贝到python所在环境的lib/site-package目录下
在这里插入图片描述
此时是所有的项目工程都可以调用到该方法。
但是我更推荐下面的方法。

使用方法二(推荐)

通过比较文件,可以看出,其实就是将生产的myadd目录拷贝了过来,我根本不需要任意工程都能用这个。
方法一的操作都不需要做

直接编写python代码

import os
import myadd.for_redistribution_files_only.myadd as myadd

#init
mm = myadd.initialize()

#call matlab func
sum = mm.myadd(10, 20)
print(sum)

为了程序稳定,建议还是要try catch…

然后运行

运行

在这里插入图片描述
这是因为,运行仍然要依赖matlab 运行环境
如果有完整的matlab,那么可以不需要安装matlab MCR,如果没有完整的matlab,那么就要安装MCR支持库。
在这里插入图片描述
执行完成
在这里插入图片描述
希望对您有帮助

编辑:myhappyandy

### 将MATLAB程序换或集成至Python #### 安装MATLAB引擎以供Python使用 为了使Python能够调用MATLAB功能,需先安装MATLAB引擎。这涉及到定位到特定路径下执行安装指令。例如,如果MATLAB被安装在`D:\publicsoftware\MATLAB\R2020b\extern\engines\python`位置,则应在此目录运行命令`python setup.py install`完成安装过程[^1]。 ```bash cd D:\publicsoftware\MATLAB\R2020b\extern\engines\python python setup.py install ``` #### MATLAB程序打包成Python 对于希望将现有的MATLAB应用程序作为独立组件嵌入Python项目中的情况,可以通过MATLAB Compiler来创建可分发给最终用户的Python软件包。此过程中需要注意的是,在配置阶段要指定目标为Python兼容模式,并按照官方文档指导操作直至生成相应的egg或wheel格式文件[^2]。 #### 处理高版本MATLAB数据文件(.mat) 当遇到由较新版本(7.3以上)保存下来的`.mat`格式的数据集时,由于其内部结构发生了变化,默认情况下利用SciPy提供的接口可能无法正常解析这些对象。此时推荐采用专门处理此类情形的第三方扩展——h5py或是tables,它们均能良好适配HDF5标准下的.mat档案读取需求[^4]。 ```python import h5py with h5py.File('example.mat', 'r') as f: data = list(f['variable_name']) print(data) ``` #### 利用SMOP辅助迁移源码逻辑 针对那些考虑完全重写现有算法实现的同学而言,借助开源工具如SMOP可以帮助简化这一繁琐的任务。不过值得注意的一点是在实际应用前最好参照社区反馈对某些已知缺陷做出相应调整优化,比如修正图遍历部分可能出现的问题[^5]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值