我是一个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。
答案 0 :(得分:2)
不一定要将array
写成特殊格式。将其写入普通csv
并使用dlmread
在matlab
中将其打开。
在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.mat
是Matlab
个数据。有关更多详细信息,请参阅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。