2012-05-21 2 views
1

원시 CSV 파일이 첫 번째 그림처럼 보입니다. 그리고 저는 Matlab을 2 번째 그림 형식으로 읽으려고합니다. 나는 1000 종류 이상의 CSV 파일을 가지고 있는데 복사/붙여 넣기로하면 고통 스러울 것입니다. 어떻게해야합니까? 어떤예요?복잡한 형식의 CSV 파일을 Matlab에서 읽기

원시 데이터 : Raw Data

출력 데이터 : Output Data

답변

0

우선은 실현하기는 .csv 파일은 매우 간단한 형식을 가지고 있다는 것입니다.

id,A001 
height 
a1,a2,a3 
3,4,5 
3,4,5 
6,7,5 

weight 
a1,a2,a3 
4,4,5 
5,4,6 
i6,7,5 

그래서 당신이 matlab에에서 자신의 파서를 작성하는 모든 어려운 일이 아니다 : 당신의 위의 파일이 실제로 각 줄에 다음 텍스트로 일반 텍스트 파일입니다. 당신은 먼저 출력 파일에 기록 원하는 방식을 쓰기를 정리 한 후 다양한 변수의 다양한 값을 읽기,에서 느린 것처럼 보일

fid = fopen('filename.csv','r'); 
L = fgetl(fid); % get a text line from the file 
commas = find(L==','); % find where the commas are in the line 
n1 = str2num(L(1:commas(1)-1); % convert the first comma-delimited number on line L 
fidout - fopen('myfile.csv','w'); 
Lout = [ L(commas(2)+1:commas(3)-1) ', a1, a1']; 
fwrite(fidout,Lout); % write a line out to the output file 
fclose all; % close all open files. 

같은 명령을 사용하려고합니다. 그러나 일단 롤링을하면 꽤 빠르게 진행될 것이고 파일에 무엇이 있는지 잘 이해하게 될 것이므로 texscan.m 또는 csvwrite.m과 같은 것을 쓰는 것에 직접적으로 관여 할 것입니다.

행운을 빈다.