2014-07-01 3 views
1

나는 파이썬 초보자이며, 형식이 다음과 같은 형식으로 Matlab 형식을 세미콜론으로 구분 된 배열 [xi, yi, ti]에 쓰려고합니다.Matlab에서 읽을 수있는 파이썬 출력

파이썬에서는 현재 다음과 같은 형식으로 작성할 수 있습니다.이 형식은 화면에 인쇄되거나 [[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.

+1

코드를 입력하십시오 – Nobi

+2

이 코드를 추가하여 질문을 편집하십시오. 아무 것도 주석으로 처리 할 수 ​​없습니다. – Nobi

+0

data_dump.txt의 처음 몇 줄은 어떻게 생겼습니까? Matlab을 그대로 읽을 수 있습니다. – Pursuit

답변

2

array을 특별한 형식으로 쓰는 것은 그리 필요하지 않습니다. 보통 csv으로 작성하고 dlmread을 사용하여 matlab에서여십시오.

numpy 측면에서, Matlab

import scipy.io as sio 

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

data_dump.mat에 대한 데이터를 내보낼 scipy.io을 시도 np.savetxt('some_name.txt', aar, delimiter=' ')

+0

모두 감사합니다! @CT Zhu : 지금 np.savetxt를 사용해 보았는데 작동하는 것 같습니다! 다음을 추가하고 Matlab에서 배열로 직접 읽을 수있는 형식으로 씁니다. 다시 한 번 감사드립니다! np.savetxt ('test.txt', SPOT, fmt = '% 10.5f', 구분 기호 = ',', 개행 = '; \ n', 머리글 = '데이터 = [...', 꼬리말 = ']' , comments = '#') – user3792245

1

를 참조하십시오

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

그리고 MATLAB에서을 :

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

감사에게 모두 감사 @CT Zhu의 나를 알려 주셔서!

Scipy를 사용하지 않아서 np.savetxt를 사용해 보았는데 작동하는 것 같습니다! 다음을 추가하고 Matlab에서 배열로 직접 읽을 수있는 형식으로 씁니다. 다시 한 번 감사드립니다!

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

건배! Sree.

관련 문제