2013-03-02 4 views
0

제 과제 중 일부로 .csv 파일을 읽어야합니다. 파일에는 숫자, 제목, 설명 (> 100 단어, 가변 길이), 위치, 시간, 기간, 회사, 범주, 출처 열 아래에 텍스트, 숫자 데이터 및 누락 된 데이터가 포함되어 있습니다..csv 파일을 MATLAB으로 읽기

행이 50 만 개가 넘습니다.

이 파일을 MATLAB에 읽으라는 명령을 내게 보내주십시오. 그것은 오류를 제공

uiopen('filename.csv',1) 

: 사용 textscan 더 복잡한 형식을 읽을 수

은 이미 다음과 같은 노력했다. 그런 다음 시도 :

이 명령은 완료 될 때까지 실행되지만 배열 (1X10)의 셀 (비어 있음) 만 제공합니다. 그러므로 나는 내가 원하는 것을 얻지 못하고있다.

또한 textread 명령을 시도했지만 오류가 발생합니다.

답변

4

textscan은 사용하고자하는 것이지만 textscan에 대한 matlab 설명서 페이지에 따르면 첫 번째 인수는 파일 ID로 간주됩니다. 지금 당신은 문자열을 전달하고 있습니다.

+0

안녕하세요 mfbutner. 파일 아이디를 넣으려고했는데 같은 문제가 발생했습니다. –

+0

코드가 다음과 같이 나타납니다. f = fopen ('filename.csv'); data = textscan (f, '% f % s % s % s % s % s % s % s % s % f', '머리글 라인', 1, '구분 기호', ','); – mfbutner

1

당신은 readtable를 사용하여 시도 할 수 있습니다 :

t = readtable('filename.csv'); 

이 문자열 및 숫자 데이터를 포함 할 수있는 matlab에에서 테이블을 생성합니다.

또는, (Matlab의 UI에 데이터 가져 오기 버튼에서 액세스) 가져 오기 도구를 사용하거나 엽니 다 uiimport를 사용할 수 있습니다

uiimport('filename.csv') 

이 데이터의 그래픽 프리젠 테이션을 발표 할 예정이다 가져 오기 작업을 수행 할 코드를 생성 할 수 있습니다.

textscan에서 직면하게되는 어려움은 형식 (% f, % s 등)을 올바르게 가져와야하고, 이로 인해 변형이 발생할 수 있습니다. 예를 들어, 일부 누락/잘못된 데이터로 인해 숫자 필드에 문자열이 있으면 실패 할 수 있습니다. textscan을 사용하고 예상 한 결과를 얻지 못하면 모든 '% s'형식 사양을 사용해보십시오.

textscan(f,'%s %s %s %s %s %s %s %s %s %s','HeaderLines', 1, 'Delimiter', ',');