Python输出可在Matlab中读取

时间:2014-07-01 04:16:02

标签: python arrays matlab numpy

我是一个Python新手,我正在尝试将一个numpy数组编写成Matlab中可读格式,格式如下:xi,yi,ti,用分号分隔。

在python中,我目前能够以下面的形式编写它,这是一个打印在屏幕上的numpy数组/以[[xi yi ti]]的形式写入文件。

以下是代码:

import math
import random
import numpy as np
SPOT = []
f = open('data_dump.txt', 'a')
for i in range(10):
    X = random.randrange(6)
    Y = random.randrange(10)
    T = random.randrange(5)
    SPOT.append([X,Y,T])
SPOT = np.array(SPOT)
f.write(str(SPOT[:]))   
f.close()

请建议我如何能够以Matlab可读格式编写此数据,如上所述。提前谢谢!

SREE。

4 个答案:

答案 0 :(得分:2)

不一定要将array写成特殊格式。将其写入普通csv并使用dlmreadmatlab中将其打开。

numpy方面,使用array

撰写np.savetxt('some_name.txt', aar, delimiter=' ')

答案 1 :(得分:2)

尝试scipy.io导出Matlab

的数据
import scipy.io as sio

matlab_data = dict(SPOT=SPOT)
sio.savemat('data_dump.mat', matlab_data)

data_dump.matMatlab个数据。有关更多详细信息,请参阅http://docs.scipy.org/doc/scipy/reference/tutorial/io.html

答案 2 :(得分:1)

如果你有scipy而不是你能做到:

import scipy.io
scipy.io.savemat('/tmp/test.mat', dict(SPOT=SPOT))

在matlab中:

a=load('/tmp/test.mat');
a.SPOT % should have your data

答案 3 :(得分:0)

谢谢大家,感谢@CT朱让我知道!

由于我没有使用Scipy,我尝试使用np.savetxt,它似乎工作!添加了以下内容并将其写入可直接在Matlab中作为数组读取的格式。再次感谢!

np.savetxt('test.txt', SPOT, fmt = '%10.5f', delimiter=',', newline = ';\n', header='data =[...', footer=']', comments = '#') 

干杯! SREE。