2012-01-22 7 views
3

어떻게 CSV 파일을 MATLAB으로 가져올 수 있습니까?. 내가 작업하고있는 파일의 행은 다음과 같습니다.MATLAB에서 CSV 파일 가져 오기

SUNW,2-Jan-98,1998,5,40.125,41.5 

36 개의 열과 10107 개의 행이 있습니다. 첫 번째 행에는 열 머리글이 있습니다. MATLAB은 이러한 종류의 CSV 파일 가져 오기를 지원하지 않습니다. 다음 textscan 함수를 사용하면 전체 데이터를 하나의 셀 배열로 읽습니다.

data = textscan(fid, '%s %s %d %d %f %f', ... 
    'HeaderLines',1, 'Delimiter',',', 'CollectOutput',1); 

각 열마다 다른 변수에 데이터를 읽을 수있는 방법이 있습니까?

답변

2

textscan documentation의 예 6 당신이 관심있는 유스 케이스 커버하는 것 같다 텍스트 편집기를 사용하여

을 은 행이 들어있는 쉼표로 구분 된 파일 data2.csv을 만들

abc, 2, NA, 3, 4 
    // Comment Here 
    def, na, 5, 6, 7 

의견이나 빈 값으로 취급해야 textscan 입력 지정 :

fid = fopen('data2.csv'); 
    C = textscan(fid, '%s %n %n %n %n', 'delimiter', ',', ... 
       'treatAsEmpty', {'NA', 'na'}, ... 
       'commentStyle', '//'); 
    fclose(fid); 

textscan 반환 다음 세포와 1 별 5 셀 어레이 C :

C{1} = {'abc'; 'def'} 
    C{2} = [2; NaN] 
    C{3} = [NaN; 5] 
    C{4} = [3; 6] 
    C{5} = [4; 7] 

명시 적으로 별도의 변수에 각 열을 할당하지 않지만, 당신은 쉽게 col1 = C{1};과 같은 작업을 수행 할 수 있습니다.