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中大量方便使用的库,又希望代码能迅速快捷的运行 ...
随机推荐
- 在HTML页面中实现一个简单的Tab
参考:http://blog.sina.com.cn/s/blog_6cccb1630100m23i.html HTML页面代码如下: <!DOCTYPE html PUBLIC "- ...
- python数据类型整理
Python中常见的数据结构可以统称为容器(container).序列(如列表和元组).映射(如字典)以及集合(set)是三类主要的容器. 一.序列(列表.元组和字符串) 序列中的每个元素都有自己的编 ...
- maven生成jar包
改了部分cas源码,想重新生成jar包,只好试着脱离eclipse,学了一下maven打jar包的命令,记录如下: 1.首先下载maven (请注意自己的jdk版本,如果使用maven2建议使用jdk ...
- [linux]free命令详解-显示内存的使用情况
本文部分转载于https://blog.csdn.net/sunansheng/article/details/51942522 free命令可以显示当前系统未使用的和已使用的内存数目,还可以显示被内 ...
- android端StarIO热敏打印机打印小票
最近在做这个热敏打印机打印小票,开始的时候在网上找资料,发现国内基本没有这方面的资料,国外也很少,在此做个打印小票的记录. 这里只记录一些关键点. 使用StarIOPort.searchPrinter ...
- PHPthinking为全部PHP爱好者指路
1.新手学习路线:个人觉得.自己手上应该有本參考书.像细说PHP,然后看书学习,穿插网上的一些免费视频教程(随便百度一下即可,之后我尽量整理一些给大家).当然假设自控能力差的同学.也能够參加一些培训机 ...
- Effective C++ Item 34 区分接口继承与实现继承
本文为senlie原创,转载请保留此地址:http://blog.csdn.net/zhengsenlie 关联条款 Item 36 接口继承和实现继承不同.在 public 继承下, derived ...
- [译]GLUT教程 - 弹出菜单基础
Lighthouse3d.com >> GLUT Tutorial >> Pop-up Menus >> Popup Menus 弹出菜单也是GLUT的一部分.虽然 ...
- 使用GnuPG(PGP)加密信息及数字签名教程_转
所谓加解密就是一方以密钥加密,另一外收到文件后以相对应的密钥解密,从而获取原始文件.数字签名的过程:信息是通过普通未加密方式发送信息给对方的,只是在每条信息后面都会附加一坨字符(名曰:签名)(或信息与 ...
- 第三篇:Logstash 安装配置
Logstash 简介: Logstash 是一个实时数据收集引擎,可收集各类型数据并对其进行分析,过滤和归纳.按照自己条件分析过滤出符合数据导入到可视化界面.Logstash 建议使用java1.8 ...