python调用并链接MATLAB脚本详解

yipeiwu_com7年前Python基础

发现一个很简单的配置方法,一直想写的没写上,今天抽空就把它给补充完整好了。

本文的配置方法Windows,Mac和Linux系统均适合。

一.安装MATLAB Engine API for python

install MATLAB Engine API for Python

Windows系统

cd "matlabroot\extern\engines\python"
python setup.py install

Mac or Linux系统

cd "matlabroot/extern/engines/python"
python setup.py install

这里的"matlabroot"是你matlab所在的安装路径,注意,上面两个地址中的反斜杠是不同的。

二.用Python调用脚本或者函数

Call User Script and Function from Python

脚本

在当前目录下,MATLAB建立triarea.m脚本文件,内容如下

b = 5;
h = 3;
a = 0.5*(b.* h)

然后同目录下新建一个test.py,内容如下

import matlab.engine
eng = matlab.engine.start_matlab()
eng.triarea(nargout=0)

函数

MATLAB建立一个function文件,内容如下:

function a = triarea(b,h)
a = 0.5*(b.* h);

同样,test.py修改如下:

import matlab.engine
eng = matlab.engine.start_matlab()
ret = eng.triarea(1.0,5.0)
print(ret) # 2.5

是不是觉得特别方便?惊不惊喜,意不意外,枉费我之前用mlab时在windows下配置了那么多,后来在Linux下没成功的时候,无意间就发现了这个方法。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持【听图阁-专注于Python设计】。

相关文章

python匹配两个短语之间的字符实例

如下所示: def ref_txt_demo(): f = open('1.txt', 'r') data = f.readlines() for line in data:...

python利用openpyxl拆分多个工作表的工作簿的方法

python利用openpyxl拆分多个工作表的工作簿的方法

实现按目录拆分工作簿,源数据如下图 按目录拆分成N个文件。 上代码,没有找是否有整个sheet 复制的,先逐个cell复制解决问题。: # encoding: utf-8 """...

Pandas时间序列重采样(resample)方法中closed、label的作用详解

Pandas提供了便捷的方式对时间序列进行重采样,根据时间粒度的变大或者变小分为降采样和升采样: 降采样:时间粒度变大。例如,原来是按天统计的数据,现在变成按周统计。降采样会涉及到...

10种检测Python程序运行时间、CPU和内存占用的方法

10种检测Python程序运行时间、CPU和内存占用的方法

在运行复杂的Python程序时,执行时间会很长,这时也许想提高程序的执行效率。但该怎么做呢? 首先,要有个工具能够检测代码中的瓶颈,例如,找到哪一部分执行时间比较长。接着,就针对这一部分...

python字符串过滤性能比较5种方法

python字符串过滤性能比较5种方法比较 总共比较5种方法。直接看代码: import random import time import os import string ba...