2016-12-12 1 views
0

textscan 명령으로 실시간 텍스트 파일의 두 번째 열을 가져 가고 싶습니다. 텍스트 파일의 첫 번째 열만 가져올 수 있지만 두 번째 열을 원합니다. 여기 내 코드는 다음과 같습니다.Textscan의 열만 스캔하기

fileid = fopen (Path); 
    rxt = textscan (fileid, '%d %*[^\n]'); 
    fclose (fileid); 

    arr = rxt {1,1}; 

어떻게하면 두 번째 열만 읽을 수 있습니까? 여기

는 텍스트 파일에서 일부분이다 :

226, -187500,02, -187500,02, -187500,02, -187500,02, -187500,02, -187500,02, -187500,02, -187500,02, 0,00, 0,00, 0,00 
227, -187500,02, -187500,02, -187500,02, -187500,02, -187500,02, -187500,02, -187500,02, -187500,02, 0,00, 0,00, 0,00 
228, -187500,02, -187500,02, -187500,02, -187500,02, -187500,02, -187500,02, -187500,02, -187500,02, 0,00, 0,00, 0,00 

답변

2
당신은 두 번째 (%d)를 유지, 첫 번째 숫자 ( %*d)를 폐기하고, 문자열의 나머지 부분을 삭제하고 싶습니다 지정할 수 있습니다

(%*[^\n])하지만, 쉼표로 separted 파일을 붙여 넣기 한 데이터를 기반으로

textscan(fileid, '%*d, %d, %*[^\n]') 

는 기수 포인트 ,를 사용하는. 따라서 두 번째 및 세 번째 숫자를 읽고 부동 소수점 숫자로 변환하려고합니다.

numbers = textscan(fileid, '%*d, %d,%d %*[^\n]'); 
numbers = arrayfun(@(a,b)a * 10^b, numbers{:})