matlab和python能互相转换吗(python语言和matlab程序可以互换吗)
如何将Python代码转换成matlab代码
兹举一简单例子。假定Python的起始目录为“D:\Matlab\work\”,而Matlab程序位于"D:\Matlab\bin\win32\matlab.exe"。在matlab的工作目录work(即,Python起始目录)下有一程序analysis.m,该程序为一数据分析程序,并且需要读取某一文件中的数据,文件名需要指定。那么利用Python调用此分析功能可以做如下工作:(1)将analysis.m改造为function,方法是在该文件头增加function语句
function
analysis(filename)
其中filename
为待处理数据的文件名,不包含路径。同时,将analysis.m文件中涉及该文件名的地方也进行相应的修改,此不赘述。(2)在Python
IDE或脚本中执行以下语句import
oscmd="D:\\Matlab\\bin\\win32\\matlab.exe
-r
"+"analysis('data.txt')"os.system(cmd)即可实现对数据的分析调用。关于matlab的其他启动选项,可以参见matlab命令说明,其中可能用到的是"
-nodesktop",该选项可以后台启动matlab而不显示。
如何将python代码转化成matlab
matlab里有使用python的模块,给python在matlab里的应用提供方便.
例如,调用当前目录下的abc.py中定义的cba函数对字符串进行处理,可以这么做(三行代码示范,
%将 Python 字符串转换为 MATLAB 字符串,通过在 textwrap.wrap 函数名称之前输入字符 py. 来调用该函数。请勿输入 import textwrap。也请勿只输入py而没有内容,否则容易卡死):
T = 'MATLAB(R) is a high-level language and interactive environment supporting traditional programming languages, such as C/C++ or Java(TM), and Python.';
wrapped = py.abc.cba(T);
whos wrapped;
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]]
'''