matlab代码转python过程中的小记录

博主分享了将matlab代码转换为python的过程,推荐使用numpy库以快速实现转换,并指出numpy中的矩阵相乘需要注意操作方式。对于提高计算速度,可以利用numpy的并行运算能力,或者使用cupy进行GPU计算,还有通过multiprocessing实现进程并行。面对大矩阵导致的内存问题,博主建议分块计算然后拼接。期待更多优化技巧的交流。
摘要由CSDN通过智能技术生成


起因

进一阵子因为需要用python来跑一些matlab的代码,实际上python可以直接调用matlab代码(可以直接用matlab.engine包),不过当时弄了一阵子没弄明白参数的调用的逻辑,索性就将matlab代码转成Python了。

一、怎样尽快将matlab代码转成Python?

根据我所搜索到的信息,numpy库和matlab的操作近似,如果想尽快把matlab代码转成python代码并运行起来,使用numpy库会比较方便。不过要注意,numpy中两个矩阵相乘是元素对应相乘,比如说python代码C = A * B相当于matlab代码C = A .* B,如果想进行矩阵运算中的乘法,则需要用.dot来进行相乘,比如说python代码C = A.dot(B) 相当于matlab代码C = A * B

二、怎样尽量加快计算?

matlab在进行矩阵运算时,能够自动调用多个CPU,而Python正常情况下因为GIL锁,一般情况下只能调用1个CPU,就造成了运算上的瓶颈,这种情况下,解决方法有多种:

  1. numpy库的简单矩阵运算能够自动使用多个CPU(dot, +, -, *)因为其底层源码好像说是用C写的,不受python的GIL锁限制。
  2. 如果希望通过调用GPU的形式来进行并行运算,可以尝试cupy库,其中
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值