matlab 调用 python
众所周知,Python凭借其众多的第三方模块,近年来被数据分析、机器学习、深度学习等爱好者所喜爱,最主要的是Python还是开源的。另一方面,MATLAB因其在仿真方面的独特优势也被众多人追捧。而在国内,虽然MATLAB具有昂贵的价格(学术版的估计也要好几千吧,具体不清楚),但恐怕也是众多搞学术的人的首选平台(原因嘛?呵呵,你懂得)。
既然MATLAB和Python各有各的优势,那能不能将二者的优势结合呢?也就是说能不能将二者的命令相互调用呢??当然能!!!在最新的MATLAB里,我们可以使用大部分(根据MATLAB官方文档)的Python命令(估计是mathworks看到了Python的某些优势,害怕若干年后使用MATLAB的用户越来越少,因为现在MATLAB的好多(注意,并不是全部)功能Python基本都可取代)。
温馨提示:如果是MATLAB和Python的初学者的话,除了某些特殊的功能非要用MATLAB不可,否则建议学习Python。
下面就来说说如何在MATLAB里调用Python吧。
二、环境配置(Windows系统)
我用的MATLAB是最新的(好像只有MATLAB R2015a以后的版本才行)。
1、首先安装好MATLAB;
2、安装Python32/64(要与你的MATLAB一致,否则不兼容),这里建议安装Anaconda32/64,因为可以省去好多安装Python第三方模块的时间。
3、将安装好的Python可执行文件路径加到你MATLAB的工具箱搜索路径中(我的是安装在E盘下的,MATLAB会自动加入其下的子目录),并“保存(save)”即可,如下图所示:
第3步不要好像也行
三、测试
以下截图是测试在MATLAB中调用Python的cv2(见这里Python-OpenCV)模块进行图像的读取并显示的(这里仅作演示配置是否成功,实际中用MATLAB的图像处理工具箱更方便)。
其中,py.cv2类似于Python的import cv2,其它的跟Python没啥区别。
相应的Python代码为:
>>> import cv2
>>> image = cv2.imread('G:\img\lena.jpg')
>>> cv2.imshow('Lena',image)
>>> cv2.waitKey(0)
运行结果:
这里写图片描述
说明:
1、这里要说明的是当我们在MATLAB中运行一次py.*之类的语句后,当我们再次输入py.并同时点击Tab键,会自动出现当前可调用的Python模块(函数),如下图:
或者当我们输入py.num,同时再点击Tab键,会自动补全为py.numpy
2、Python中的from x import y在MATLAB中调用类似于import x.y(但是不要这样导入import py.*,这样的话,Python将覆盖MATLAB中的同名函数),当不再需要import x.y导入的函数时,要执行语句clear import进行清空。
下面是MATLAB官方文档中的例子:
方法一与方法二可以进行对比
这里写图片描述
3、这个是在MATLAB中调用Python的官方帮助文件Call Python Libraries,里面有详细的帮助信息。
4、以上内容全部来自Call Python Libraries,我只是用自己的话大致总结了一下自己所看的而已。
5、这是个MATLAB与Python对应函数的网页,以帮助那些熟悉其一又要学另一语言的朋友
欢迎大家踊跃发言
---------------------
作者:jnulzl
来源:CSDN
原文:https://blog.csdn.net/jnulzl/article/details/51170859
版权声明:本文为博主原创文章,转载请附上博文链接!
matlab 调用 python的更多相关文章
- Matlab 调用 Python 脚本
Matlab 调用 Python 脚本 最近尝试在 Matlab 环境中调用 Python 脚本,这里总结下碰到的几个问题. 1. Python 模块加载 在 Matlab 函数中,想要将 Pytho ...
- 【算法导论】八皇后问题的算法实现(C、MATLAB、Python版)
八皇后问题是一道经典的回溯问题.问题描述如下:皇后可以在横.竖.斜线上不限步数地吃掉其他棋子.如何将8个皇后放在棋盘上(有8*8个方格),使它们谁也不能被吃掉? 看到这个问题,最容易想 ...
- matlab调用keras深度学习模型(环境搭建)
matlab没有直接调用tensorflow模型的接口,但是有调用keras模型的接口,而keras又是tensorflow的高级封装版本,所以就研究一下这个……可以将model-based方法和le ...
- cpp 调用python
在用cpp调用python时, 出现致命错误: no module named site , 原因解释器在搜索路径下没有找到python库.可以在调用Py_Initialize前,调用 Py_Se ...
- c调用python
#include <Python.h>//python33(python2.x有几个函数不对应) /* PyImport_ImportModule 导入一个Python模块并返回它的指针 ...
- linux+php+apache web调用python脚本权限问题解决方案
lamp : linux + apache + mysql + php 在上篇随笔中linux+php+apache调用python脚本时出现的问题的根本原因是:apache运行时使用的apache用 ...
- linux+php+apache web调用python脚本权限问题
lamp : linux + apache + mysql + php 在近期项目中使用 linux + apache + php调用python脚本是出现以下权限问题: build/bdist.li ...
- C#中调用python方法
最近因为项目设计,有部分使用Python脚本,因此代码中需要调用python方法. 1.首先,在c#中调用python必须安装IronPython,在 http://ironpython.codepl ...
- MATLAB调用C程序、调试和LDPC译码
MATLAB是一个很好用的工具.利用MATLAB脚本进行科学计算也特别方便快捷.但是代码存在较多循环时,MATLAB运行速度极慢.如果不想放弃MATLAB中大量方便使用的库,又希望代码能迅速快捷的运行 ...
随机推荐
- vuejs 表单验证插件 VeeValidate
VeeValidate https://baianat.github.io/vee-validate/
- close_wait状态的产生原因及解决(转)
最近测试环境server由于需要与大量的后台server交互,今天突然发现有大量的close_wait产生,于是仔细研究了一下: 如果我们的服务器程序处于CLOSE_WAIT状态的话,说明套接字是被动 ...
- windows下WMI使用C++查询用户硬件信息
最近需要做下用户信息统计,发现WMI真是个好东西,同时觉得COM这东西,还真不能少>_<!! 下面是源码: /*************************************** ...
- iOS将数组中的内容分拼接成字符串
NSString *string = [array componentsJoinedByString:@","];--分隔符
- SQL数据库从高版本到低版本的迁移,同时解决sql脚本文件太大无法打开的尴尬问题
as we known,sql数据库高版本向低版本还原是不太可能但是又经常会碰到的事,今天实测了一种方法 步骤:任务—>生成脚本—> 下一步->高级,选择数据库版本和编写脚本数据类型 ...
- Windows2008RC2 IIS配置php执行环境
1:下载一个php manager,安装.打开IIS管理器后,点击计算机,就能够看到右边PHPManager 静静地躺在那儿了.双击PHPManager 后我们就能够開始对PHP进行配置了. 2 ...
- [转] java代码块 介绍
//执行顺序:(优先级从高到低.)静态代码块>mian方法>构造代码块>构造方法. 其中静态代码块只执行一次.构造代码块在每次创建对象是都会执行. 1 普通代码块 1 //普通代码块 ...
- xgboost 特征选择,筛选特征的正要性
import pandas as pd import xgboost as xgb import operator from matplotlib import pylab as plt def ce ...
- 网络启动并安装Debian
网络启动(PXEBoot)并安装Debian的官方文档在这里,不过官方文档有点冗长,我这里假设已经有一台安装好Debian,需要网络安装另一台(这台可以是虚拟机,通过ISO文件等等方式安装的).PXE ...
- Exception in thread "main" java.util.ConcurrentModificationException
package test; import java.util.ArrayList; import java.util.Iterator; import java.util.List; public c ...