python 执行matlab文件

环境:matlab2014b,mac os,python 2.7

1. windows用户可以用win32com,COM只适用于WINDOWS系统,这里没有尝试。

2. 如果是执行简单的命令,可以用matlab2014b提供的引擎,我的在/Applications/MATLAB_R2014b.app/extern/engines/python。

###Matlab Engine for Python
#Call Matlab Function from Python
 
------------------------------
##Step 1: Installation
 
#Install with Administrator Privileges
  cd "matlabroot\extern\engines\python"
  python setup.py install
 
#Install without Administrator Privileges
 
  cd "matlabroot\extern\engines\python"
  python setup.py build --build-base builddir install --install-base installdir
 
  Include ‘installdir‘ in the search path for Python packages
  Add ‘installdir‘ to the PYTHONPATH environment variavle
 
 
------------------------------
##Step 2: Using Matlab Engine
 
  #Start and quit
  import matlab.engine
  eng = matlab.engine.start_matlab()
  eng.quit()
 
  #Call Matlab Functions:
  #Just call with form eng.xxx()
  #the function xxx should in the namespace of matlab.
 
 
  #Asynchronously Call
  import matlab.engine
  eng = matlab.engine.start_matlab()
  future = eng.sqrt(4.0,async=True)
  ret = future.result()
  print(ret)
 
 
  #WorkSpace Usage:
  import matlab.engine
  eng = matlab.engine.start_matlab()
  eng.workspace[‘y‘] = x
  a = eng.eval(‘sqrt(y)‘)
  print(a)
 
 
  #Skills for unsupported features in python
  #eng.eval()
  import matlab.engine
  eng = matlab.engine.start_matlab()
  eng.eval("T = readtable(‘patients.dat‘);",nargout=0)
 
  #Plot With Matlab:
  import matlab.engine
  eng = matlab.engine.start_matlab()
  data = eng.peaks(100)
  eng.mesh(data)
------------------------------

3. python直接调用执行matlab,现有很多工具:

3.1. pymat

  没有python2.7的支持

3.2. pymat2

  在pymat基础上改良过的。

3.3. mlabwrap

  http://mlabwrap.sourceforge.net/

  需要用root权限。最初安装不成功,报OSError: [Errno 2] No such file or directory,应该是找不到MATLAB2014b的路径,更改PATH加上MATLAB的安装目录后成功(在setup.py中更改安装参数应该也可以,没有尝试)。export PATH=/Applications/MATLAB_R2014b.app/bin:$PATH

  import mlabwrap as mlab的时候又报import mlabraw引入不成功,google之后发现export DYLD_LIBRARY_PATH=/Applications/MATLAB_R2014b.app/bin/maci64:$DYLD_LIBRARY_PATH即可,

  这里runmodel.m文件内容是Function result = runmodel() ..... END

  调用方式为mlab.runmodel()

解决方案参考了http://stackoverflow.com/questions/13311415/run-a-matlab-script-from-python-pass-args/13316939#13316939

http://sourceforge.net/p/mlabwrap/mailman/message/26145026/

3.4. mlab

貌似在mac上不稳定,执行不了后就放弃了。

3.5. python-matlab-bridge

https://github.com/jaderberg/python-matlab-bridge

only work on unix, and is based on TCP transmission while messages are decoded in JSON format。

3.6. Nipype

http://nipy.sourceforge.net/nipype/api/generated/nipype.interfaces.matlab.html

时间: 2024-11-05 19:02:27

python 执行matlab文件的相关文章

Python 执行tail文件并操作

def log_search(self, logfile, search_content, timeout=10): import time import subprocess import select import signal import os f = subprocess.Popen(['tail', '-F', logfile], stdout=subprocess.PIPE, stderr=subprocess.PIPE) p = select.poll() p.register(

python代码执行SQL文件(逐句执行)

一.简介 关于Python如何连接数据库并执行SQL语句,几乎所有的Python教程都会讲,教程里基本只介绍了执行单条SQL语句的方法,但是实际生产过程中可不只是执行一两条语句,动辄几十条甚至上百条的SQL语句,一个.SQL的SQL文件正常都会包含多条SQL语句,如果把这些SQL语句直接贴进Python代码文件,势必会影响代码的可读性和美感,代码量也冗余,那么Python能不能像oracle的PL/SQL客户端或者navicat一样读取SQL文件并且执行会是一件非常有趣的事情. 经过不断百度和尝

python——读取MATLAB数据文件 *.mat

鉴于以后的目标主要是利用现有的Matlab数据(.mat或者.txt),主要考虑python导入Matlab数据的问题.以下代码可以解决python读取.mat文件的问题.主要使用sicpy.io即可.sicpy.io提供了两个函数loadmat和savemat,非常方便. # adapted from http://blog.csdn.net/rumswell/article/details/8545087 import scipy.io as sio #import matplotlib.p

MATLAB强行终止正在执行的文件

终止正在运行的matlab文件,需要命令窗口按快捷键,有三种快捷键可以选择: 一: ctrl +c 二: ctrl+break 三: ctrl+alt+break 如果是在服务器上跑的代码的话,按完快捷键之后有时候需要等一小会,程序才会停. 原文地址:https://www.cnblogs.com/yanmingjiang/p/9426877.html

Python的扩展接口[3] -> Matlab引擎 -> 使用 Python 调用 Matlab 程序

Python - Matlab 目录 Python-Matlab 引擎 Python-Matlab 数组 Python-Matlab 基本操作 Python-Matlab 调用 m 文件 Matlab的官方文档中介绍了Matlab与其余编程语言之间的引擎接口,其中包括对于Python开放的引擎API,可参考官方教程,其中包括引擎安装,基本使用,以及Python与Matlab之间的数据类型转换及交互. 除了使用官网的Matlab引擎来驱动Matlab外,还可以使用第三方包mlab来进行连接或直接使

[python][matlab]使用python调用matlab程序

问题引入 在做实验的时候,需要用到python和matlab工具来进行不同的处理,比如在run神经网络的时候,需要使用pytorch框架得到网络的各个参数,在得到参数后需要使用matlab进行聚类规划.之前的做法是用python脚本耦合其联系,两者通信的方式是通过文件.后来发现matlab有针对于python的api引擎,瞬间感觉打开了新世界的大门,只需要在python中调用相关的api,就可以完成matlab的工作,再也不用一个一个复制文件了. 解决思路 首先,我安装的是matlab R201

Windows中使用 Python 调用 Matlab 程序

环境变量: 1 Python-Matlab引擎 / Pyhton-Matlab Engine 首先,需要确保Matlab及Python的配置和安装,利用Matlab提供的setup.py文件安装Python的引擎包,安装步骤及过程如下, 1. 确保安装可用的Python和Matlab,且两者版本对应,如32位的Matlab需对应32位的Python,同时还需查看Matlab支持的Python版本(目前2016a版支持的Python版本为2.7/…/3.5); 2. 添加Python目录到环境变量

Python删除同一个文件夹下的重复文件

#!/usr/bin/env python #coding: utf-8 import md5 import os from time import clock as now def getmd5(filename):     file_txt = open(filename, 'rb').read()     m = md5.new(file_txt)     return m.hexdigest() def main():     path = u'C:\\aa\bb\cc\dd'     

python基础之文件读写

python基础之文件读写 本节内容 os模块中文件以及目录的一些方法 文件的操作 目录的操作 1.os模块中文件以及目录的一些方法 python操作文件以及目录可以使用os模块的一些方法如下: 得到当前工作目录,即当前Python脚本工作的目录路径: os.getcwd() 返回指定目录下的所有文件和目录名,返回的是一个列表:os.listdir("指定路径") 函数用来删除一个文件:os.remove("文件路径") 删除多个目录:os.removedirs(&