前言
今天分享的是matlab与python的交互,其实不仅是matlab,其他语言也可以和matlab交互。
MATLAB和Python可以在一定程度上互相调用,起到互补的作用。
Python
Python是一种面向对象的解释型计算机程序设计语言。Python是纯粹的自由软件, 源代码和解释器CPython遵循 GPL(GNU General Public License)协议 。
Matlab
MATLAB是美国MathWorks公司出品的商业数学软件,用于算法开发、数据可视化、数据分析以及数值计算的高级技术计算语言和交互式环境,主要包括MATLAB和Simulink两大部分。
一、首先我们先讲解最核心的语法
1.在python中捕捉参数的输入:import sys
sys.agrv
2.matlab:[status.cmdout]=system(command)
其中status是运行状态,cmdout是记录每一次输出。
python py文件地址 参数1 参数2 参数3
matlab提供了一个小的函数叫system,而system大家只要按照这个形式去写,按照如下的方式去写指令,运行之后就会把我们的参数传输给python程序,python就能自动识别它们。
那么指令是什么呢?首先是我们matlab中的python,第二个就是你的脚本所在的地址,然后就是你想输入的参数。sys.agrv就会捕捉到我们传进去的参数 ,是以一个list存储的,分别对应的是文件地址、然后第一个参数、第二个参数···
示例图:
这种方法有两个注意事项:
1.python一定要在我们的环境变量里面
如何检验呢?
按下win+r,输入cmd打开,输入python能进入下面的界面说明你的python是在环境变量中,一般都是在环境变量里面,都是默认加入的。
2.python激活脚本
python激活脚本的时候,脚本存放的位置,它的绝对路径中间一定不能有空格。
像下面这种,脚本存放位置在E盘的program files里面,但是中间有空格的话就会报错,所以一定是不能有空格的
二、如何在matlab里面使用python呢
一句话概括,那就是在所有python的用法中加入py.就可以了。学到后面你就会发现python就是给各种语言提供一个环境,我们可以用几行字就能实现非常复杂的功能。所以说在python所有用法里面开头加上py.就可以在matlab里面实现,也就是说,matlab变成了一个python新的编辑器。
1.打开matlab,建一个python的列表,这是在python里面建一个列表
2.在matlab里面建的话就要加一个py.然后回车,就在matlab里面建好了一个python的list
如果我们写 a.像python里面一样,加.按Tab键,你会发现python里面所有list方法在matlab里面都可以用,就是那么强大,这样发的话就相当于把matlab变成了一个新的python。
这就是在matlab里面如何去建python的各种变量或者各种方法等等,除此之外python更强大的地方在于,全世界有提供python各式各样的包,我们如何去用它的包,这是我们最需要的。
三、如何在matlab里面使用python的module
1.直接导入:
mod = py.importlib.import_module(module全称)
2.重新导入:
py.importlib.reload(模块名称);
3.当前文件夹加入到python学习路径:
if count(py.sys.path,") == 0
insert(py.sys.path,int32(0),");
end
什么意思呢?其实就是把你当前这个路径加入到python里面,让python去执行,然后再把结果返回给matlab,这就是它的实质。所以说我们如果想要运行一个程序,代码是在python里面,那我们就不用去管它。如果代码是在当前文件夹的话,一定要把这个文件夹先加入到环境变量里面,只需要运行这三行代码就行了。
这是已经运行完了的。
1. 比如说我们再重新建一个matlab的函数,保存一下,修改python文件后面的结尾应该是py
运行之前还是要把环境变量加进来,然后再直接调取py.untitled.xia,可以看到直接返回出来了12
2.那我们变量再改一改2*a*b,再运行一下上面的结果,你会发现它还是原来的12
但是按道理来说应该是24,所以说,我们在matlab里面还需要注意一点就是,如果就是一旦载入之后,这个代码是需要修改的,需要再重新载入。
3.首先需要把环境变量再重新载进来,按照上面的要求步骤:
(1).mod = py.importlib.import_module(module全称)改成
mod = py.importlib.import_module('untitled')直接导成module里面
(2).py.importlib.reload(模块名称);改成
py.importlib.reload(mod);之后再重新运行一下,就可以看到运行结果变了。
总结一下matlab和python的交互的一个方法,非常的简单。
第一,如果你想从头写的话,直接在python的方法前加个py.就行
第二,如果你想调用现成的包或者脚本的话,可以用上面的那三段代码就可以实现了。
今天这篇文章分享给大家,我们能把matlab和python变成了一个软件,我们用matlab可以调用目前为止成千上万个大家写的这些工具包来实现我们的功能,这就是今天的内容。
你学到后面你就会发现,我们能把所有工具变成自己的代码,都能变成自己的工具。希望大家再接再厉,多付出一点努力,你就会得到巨大的收获。