ars*_*ars 67
如果你使用numpy/scipy,你可以使用这个scipy.io.savemat函数:
import numpy, scipy.io
arr = numpy.arange(9) # 1d array of 9 numbers
arr = arr.reshape((3, 3)) # 2d array of 3x3
scipy.io.savemat('c:/tmp/arrdata.mat', mdict={'arr': arr})
Run Code Online (Sandbox Code Playgroud)
现在,您可以使用文件 - >加载数据将此数据加载到MATLAB中.选择文件arr,您的环境中将可以使用变量(3x3矩阵).
注意:我在scipy 0.7.0上做了这个.(scipy 0.6 savemat在scipy.io.mio模块中有.)有关更多详细信息,请参阅最新文档
编辑:感谢@gnovice更新链接.
我认为ars有最直接的答案,可以将数据保存到Python的.mat文件中(使用savemat).要简单地添加一些答案,您还可以使用LOAD函数以编程方式将.mat文件加载到MATLAB中,而不是使用MATLAB命令窗口菜单手动完成.
您可以使用LOAD 的命令语法形式:
load c:/tmp/arrdata.mat
Run Code Online (Sandbox Code Playgroud)
或函数语法形式(如果您将文件路径存储在字符串中):
filePath = 'c:/tmp/arrdata.mat';
data = load(filePath);
Run Code Online (Sandbox Code Playgroud)
我写了一个小函数来做同样的事情,而不需要numpy.它采用列表列表并返回带有MATLAB格式矩阵的字符串.
def arrayOfArrayToMatlabString(array):
return '[' + "\n ".join(" ".join("%6g" % val for val in line) for line in array) + ']'
Run Code Online (Sandbox Code Playgroud)
写"myMatrix = " + arrayOfArrayToMatlabString(array)一个.m文件,在MATLAB打开它,执行它.
小智 5
我可能会numpy.savetxt('yourfile.mat',yourarray)在Python中然后yourarray = load('yourfile.mat')在MATLAB中使用。