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 字符串操作方法大全

1、去空格及特殊符号复制代码 代码如下:s.strip().lstrip().rstrip(',')2、复制字符串复制代码 代码如下:#strcpy(sStr1,sStr2)sStr1...

对numpy和pandas中数组的合并和拆分详解

合并 numpy中 numpy中可以通过concatenate,指定参数axis=0 或者 axis=1,在纵轴和横轴上合并两个数组。 import numpy as np impo...

python读取TXT到数组及列表去重后按原来顺序排序的方法

本文实例讲述了python读取TXT到数组及列表去重后按原来顺序排序的方法。分享给大家供大家参考。具体如下: ####################################...

Python Tkinter模块 GUI 可视化实例

我就废话不多说了,直接上代码: coding:utf-8 #自带的Tkinter模块 from Tkinter import * from ScrolledText impo...

python2和python3应该学哪个(python3.6与python3.7的选择)

首先先说一下python2与python3的选择 许多刚入门 Python 的朋友都在纠结的的问题是:我应该选择学习 python2 还是 python3? 对此,回答是:果断 Pyth...