Matlab调用python

基本步骤

1 、在进入Matlab后,首先在主窗口点击 设置路径,添加python的安装目录(选择“添加并包含子文件夹”),就可以自动添加python目录下的路径。或者通过以下命令也可实现。

pyversion \python解释器路径

打开MATLAB, 输入pyversion, 结果如下

>> pyversion

       version: '3.7'
    executable: 'C:\ProgramData\Anaconda3\python.exe'
       library: 'C:\ProgramData\Anaconda3\python37.dll'
          home: 'C:\ProgramData\Anaconda3'
      isloaded: 0

说明Matlab已经找到python解释器。

2 、matlab中调用python函数,统一格式为py.*

​ 2.1 如要调用python默认函数,比如,py.print(‘Hello world!’),就可以使得屏幕输出Hello world!

​ 2.2 如果要在matlab中调用自己写的python script,如test.py,则首先要将test.py目录添加至matlab搜索路径。或者在.m文件前加上下面的代码。

if count(py.sys.path,'') == 0
    insert(py.sys.path,int32(0),'');
end

假设tets.py中有函数mycc,可以用调用py.test.mycc调用该函数。下面为一个简单的类,将其保存为myClass.py。

class myClass:
    version = 1.0
    def __init__(self,a,b):
        self.a, self.b = a,b
    def getsum(self):
        return self.a+self.b 

然后在Matlab中输入即可得到。

>> pyObj = py.myPyClass.myClass(1,2);
>> pyObj.getsum
ans =
     3

​ 2.3 在调用自己写的python script时,经常遇到的一个问题是要对python script进行修改,这种情况下matlab中会使用缓存库,而不会自动使用更新后的script,会提示找不到更改后的函数。解决办法有两种:

​ 2.3.1 重启matlab,就会清空缓存,一切ok

​ 2.3.2 在代码中添加如下代码进行重新加载,也能够加载更新后的函数。

clear classes;
mod = py.importlib.import_module('test');
py.importlib.reload(mod);

tip

在Matlab中将 Numpy 库返回的 ndarray 类型转换:

data = double(py.array.array('d',py.numpy.nditer(value)));

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值