python和Matlab可以互相调用吗(matlab和python混合编程)
Python 和Matlab 数据互导
import scipy.io as io
import numpy as np
io.savemat("E:\mytest.mat",{'a':1,'b':2,'c':3,'d':4})
io.savemat("E:\mytest.mat",{'x':[[1,2,3,4],[5,6,7,8]]})
data=io.loadmat('E:\mytest.mat') # data是一个dictionary
x=data['x'] # 将dic中的键(x)对应的value传给变量x
print(x)
'''
result:
[[1 2 3 4]
[5 6 7 8]]
'''
怎么用python调用matlab
接下来在调用test函数
from win32com.client import Dispatch
h = Dispatch("Matlab.application")#启动MATLAB自动化服务器
h.execute("test(0.0,512.0)")
此时MALTAB会打开MATLAB Command Window,而且python的结果很可能为如下错误提示
“??? Undefined function or method 'test' for input arguments of type 'double'.”
这是因为路径的原因造成的。把你的.m文件和.py放在同一路径下,在MATLAB Command Window中cd到此路径,再执行,就会成功调用test函数,绘出正确的图形。
怎么用python调用matlab?
Vim,Python,Matlab之间有6=3*2中关系。我们这里只说,vim调Python, vim调matlab, python调matlab三种情况。vim可以编辑.py,和.m文件,也有语法高亮。如果能在编辑完文档后按个什么键,就能执行程序是在好不过的了。matlab强是强在科学计算,矩阵计算,但是它的数据结构很单一,字符串处理上稍显不足。因此python调用matlab的情况也是有可能的。python毕竟是一样很强大的语言。(官网上通篇英语,确有两个汉字“下载”)!
1. Vim调用Python
从最简单的说吧。vim执行python代码,极其简单。
:py+{python代码},执行python2的代码。(+与{}不用输入)
:py3+{python代码},执行python3的代码。(+与{}不用输入)这种方式适合写只有一行的代码,也非常适合在编写vim插件时引用python代码。
:pyfile+{xxx.py}, 执行python的代码,代码写在文件中。(+与{}不用输入)
:py3file+{xxx.py}, 执行python3的代码。(+与{}不用输入)