如何在Python中调用Matlab
检查您的系统是否具有受支持的 Python 版本和 MATLAB R2014b 或更新版本。要检查您的系统上是否已安装 Python,请在操作系统提示符下运行 Python。
1)打开Prompt,输入' cd matlabroot\extern\engines\python' 切换并创建文件夹
输入'python setup.py install' 进行安装。如果提示python版本不对进去下面流程。
2)键入'python –version' 查看python版本。如果版本不符合上一句指令提示,使用conda指令切换python版本。
3)执行命令:conda create --name python34 python=3.4 安装3.4版本
4)执行命令 conda info --envs,从图中我们看到,这里多了一个名字为python34的Python环境.
5)执行命令:python --version,查看当前版本
6)执行命令:activate python34,然后执行命令:python --version,查看是否切换成功.
7)重新执行1)完成安装用于 Python 的 MATLAB 引擎 API。
现在我们想用Spyder来编程,所以需要通过Prompt切换到Spyder(python 3.4)
1)'activate python34' 进入刚才创建的环境。
2)在环境中安装anaconda的库:'conda install anaconda'
3)安装完毕之后键入: 'spyder' 即可进入Spyder(python 3.4)
现在我们可以在Spyder中启动Matlab了
[1]: import matlab.engine
[2]: eng = matlab.engine.start_matlab()
在当前文件夹下创建名为test.m文件,在Python中:
[3]: eng.test(nargout=0) #指定 nargout=0尽管脚本会打印输出,但它不会返回任何输出参数
Matlab中自定义的函数也是可以用Python调用的,打开test.m(只能编写,不能执行),matlab自带函数同理:
>>function a = triarea(b,h)
>>a = 0.5*(b.* h);
回到Spyder:
[4]:ret = eng.triarea(1.0,5.0)
[5]:print(ret) # triarea 函数仅返回一个输出参数,因此无需指定 nargout。
要停止执行 MATLAB 函数,请按 Ctrl+C。控制权将返回给 Python。
程序最后记得退出matlab环境:
[6]:eng.quit()
如何在Python中调用Matlab的更多相关文章
- [Python-MATLAB] 在Python中调用MATLAB的API
可以参考官方的说明文档: http://cn.mathworks.com/help/matlab/matlab_external/get-started-with-matlab-engine-for- ...
- 如何在python中调用C语言代码
1.使用C扩展CPython还为开发者实现了一个有趣的特性,使用Python可以轻松调用C代码 开发者有三种方法可以在自己的Python代码中来调用C编写的函数-ctypes,SWIG,Python/ ...
- 如何在Python中调用打包好的Jar文件?
首先是在anaconda中进入我这个项目对应的一个环境,然后在这个环境中下载并且安装jpype.那么就可以直接import了.但是这里出现了一系列的问题 第一个问题,getDefaultJVM()报错 ...
- 使用ctypes在Python中调用C++动态库
使用ctypes在Python中调用C++动态库 入门操作 使用ctypes库可以直接调用C语言编写的动态库,而如果是调用C++编写的动态库,需要使用extern关键字对动态库的函数进行声明: #in ...
- 如何在Java中调用Python代码
有时候,我们会碰到这样的问题:与A同学合作写代码,A同学只会写Python,而不会Java, 而你只会写Java并不擅长Python,并且发现难以用Java来重写对方的代码,这时,就不得不想方设法“调 ...
- Python中调用自然语言处理工具HanLP手记
手记实用系列文章: 1 结巴分词和自然语言处理HanLP处理手记 2 Python中文语料批量预处理手记 3 自然语言处理手记 4 Python中调用自然语言处理工具HanLP手记 5 Python中 ...
- 如何在Python中使用Linux epoll
如何在Python中使用Linux epoll 内容 介绍 阻塞套接字编程示例 异步套接字和Linux epoll的好处 epoll的异步套接字编程示例 性能考量 源代码 介绍 从2.6版开始,Pyt ...
- vs2013如何在C++中调用Lua(二)
Lua学习笔记 vs2013如何在C++中调用Lua (此为转载教程) 本人试过完全可行 一.准备工作 1.下载Lua源码,地址:http://www.lua.org/download.html(我用 ...
- 如何在Delphi中调用VC6.0开发的COM
上次写了如何在VC6.0下对Delphi写的COM进行调用,原本想马上写如何在Delphi中调用VC6.0开发的COM时,由于在写事例程序中碰到了个很怪的问题,在我机子上用VC写的接口程序编译能通过. ...
随机推荐
- bond模式
1.mode=0(balance-rr)(平衡抡循环策略) 链路负载均衡,增加带宽,支持容错,一条链路故障会自动切换正常链路.交换机需要配置聚合口,思科叫port channel.特点:传输数据包顺序 ...
- Thing in java 第5章,初始化和清理,练习题答案
/** * Created by Sandy.Liu on 2018/7/28. * Thinking in java version 4, chapter 5, practice 2 * Creat ...
- java中super关键字的作用
1.super关键字可以在子类的构造方法中显示地调用父类的构造方法,super()必须为子类构造函数中的第一行. 2.super可以用来访问父类的成员方法或变量,当子类成员变量或方法与父类有相同的名字 ...
- 如何编译luabind支持vs2010之后所有版本
步骤 下载https://github.com/luabind/luabind/tree/0.9. 其最后一次commit为 Revision: 8c66030818f0eacbb7356c16776 ...
- netty拆包粘包
客户端 tcp udp socket网络编程接口 http/webservice mqtt/xmpp 自定义RPC (dubbo) 应用层 服务端 ServerSocket ss = new serv ...
- laravel+Redis简单实现队列通过压力测试的高并发处理
秒杀活动 在一般的网络商城中我们会经常接触到一些高并发的业务状况,例如我们常见的秒杀抢购等活动, 在这些业务中我们经常需要处理一些关于请求信息过滤以及商品库存的问题. 在请求中比较常见的状况是同一用户 ...
- HttpClient 上传图片
Image image = Image.FromFile(@"F:\image2\DSC02028.JPG"); var data = ImageToByteArray(image ...
- Linux下MySQL编码的修改
默认登录mysql之后可以通过SHOW VARIABLES语句查看系统变量及其值. mysql> show variables like '%character%'; 说明:以下是在Cent ...
- 安装pytorch成功但cuda不可用
贴上我看的教程https://zhuanlan.zhihu.com/p/26871672 一开始想用pycharm装pytorch,但不知道为什么一直失败.后来只能conda pip安装 但conda ...
- net start mysql意外终止1607
以下个人见解,错了请指出,谢谢 问题:安装了mysql,看到别人都用net start mysql来启动mysql服务,结果我打开cmd,用net start mysql 就会出问题.在网上查资料,好 ...