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中大量方便使用的库,又希望代码能迅速快捷的运行 ...
随机推荐
- Codeforces Round #262 (Div. 2)解题报告
详见:http://robotcator.logdown.com/posts/221514-codeforces-round-262-div-2 1:A. Vasya and Socks http ...
- cordova与ios native code交互的原理
非常早曾经写了一篇博客,总结cordova插件怎么调用到原生代码:cordova调用过程,只是写得太水.基本没有提到原理.近期加深了一点理解,又一次补充说明一下 js调用native 以下是我们产品中 ...
- 谁动了我的cpu——oprofile使用札记(转)
引言 cpu无端占用高?应用程序响应慢?苦于没有分析的工具? oprofile利用cpu硬件层面提供的性能计数器(performance counter),通过计数采样,帮助我们从进程.函数.代码层面 ...
- HDU 3732 Ahui Writes Word(多重背包)
HDU 3732 Ahui Writes Word(多重背包) http://acm.hdu.edu.cn/showproblem.php? pid=3732 题意: 初始有N个物品, 每一个物品有c ...
- MySQL - Show Processlist 整理(转)
原文来源:MySQL 5.5 Reference Manual 部分翻译取自:<MySQL_5.1中文参考手册> 转载请注明原文链接http://www.cnblogs.com/len ...
- My sql 实用教程
http://wenku.baidu.com/link?url=uwWWeGTZU61MQSSArf2pYRd4jPd7k7gNsx75KxEUKO1MlMLAAFiIF-fus3CY4RLyyzbZ ...
- vim 批处理
一.使用args , argdo 进行文件批处理 1. :args ./src/**/*.js 利用args命令标记所要处理的文件 2. :argdo %s/tabindex/tabI ...
- android读取xml文件来实现省份,城市,区的选择
本博客如需转载.请注明出处. ------------------------------------------------------------------------------------- ...
- jeecms搜索结果排序-二次开发
jeecms搜索用的是apache Lucene,要实现此功能得先去学习它. 直接上代码 package com.jeecms.cms.lucene; import java.io.IOExcepti ...
- Mysql----mysql启动服务时提示"服务名无效"
1,首先说明一下我的环境,我刚开始是用的XAMPP这个集成的软件,里面安装了apache, mysql,tomcat这些软件,然后通过控制面板对其进行启动关闭的操作,这些操作很方便,但是我就用net ...