2014-04-07 2 views
1

이 질문에 대한 변형은 이미 여러 번 요청되었습니다 (예 : here). 그러나, 나는 이것이 내 데이터에 대해 작동하도록 할 수 없습니다.혼합 문자열 숫자 텍스트 파일에서 숫자 열을 가져 오는 방법

나는 3 개의 열이있는 텍스트 파일을 가지고 있습니다. 첫 번째와 세 번째 열은 부동 소수점 숫자입니다. 중간 열은 문자열입니다. 저는 첫 번째 열을 실제로 얻는 데에만 관심이 있습니다.

는 여기에 내가 뭘하려입니다 : 내가 할 때

filename=fopen('heartbeatn1nn.txt'); 
A = textscan(filename,'%f','HeaderLines',0); 
fclose(filename); 

이 A는 같은 단지 하나의 숫자 나온다 - 열의 첫 번째 요소를. 전체 컬럼을 얻으려면 어떻게해야합니까? 나는 또한 '.tsv'파일 확장자와 동일한 결과로 이것을 시도했다.

도 시도 : 동일한 결과

filename=fopen('heartbeatn1nn.txt'); 
formatSpec='%f';sizeA=[1 Inf]; 
A = fscanf(filename,formatSpec,sizeA); 
fclose(filename); 

.

파일 크기가 문제가 될 수 있습니까? 파일 크기가 1.7M이기 때문에 몇 개의 행이 있지만 실제로는 몇 개가 될지 모릅니다. 텍스트 파일의 열을 가정

답변

1

은 당신의 형식 사양은 다음과 같아야 하나의 공백 문자로 구분됩니다 :

A = textscan(filename,'%f %s %f'); 

A

이제 전체 파일 콘텐츠가 포함되어 있습니다. 첫 번째 열 얻으려면 : 또는

first_col = A{:,1}; 

을, 당신은 * 옵션을 사용하여 불필요한 필드를 건너 textscan을 알 수 있습니다 :

first_col = cell2mat(textscan(filename, '%f %*s %*f')); 

이 첫 번째 열을 반환합니다.

관련 문제