2016-11-10 3 views
0

각 행에 숫자가 들어있는 파일을 읽고 싶습니다. 다음은 이와 같이 도시 포맷팅 및쉼표 및 탭으로 구분 된 행 읽기

0,0,0 1 0 0 0 
0.02,0.1,0.98 8.77 0.985292 0.112348 0.112348 
0.04,0.2,1.96 8.77 0.985292 0.112348 0.224696 

의 예는 모든 나머지 숫자는 라인 탭에 의해 분리 된 후, 첫 번째 세 개의 숫자는 콤마로 분리된다. 따라서 dlmread 또는 textscan을 사용할 수 없습니다. 그것을 해결할 방법이 있습니까? 감사!

+0

[link] (https://in.mathworks.com/help/matlab/ref/fscanf.html)에 설명 된대로 fscanf를 사용할 수 있습니다. 'fscanf'에서 파일의 형식을 지정할 수 있습니다. –

답변

2

예는 함수에 두 개의 매개 변수를 추가해야합니다 :

Delimiter %choose the delimiter

MultipleDelimsAsOne %Treat Repeated Delimiters as One

옵션 1 :

작은 "속임수"더 선택할 수 있습니다 구조체를 입력으로 사용하면 하나의 구분 기호가 사용됩니다. {',',' '}.

Result = textscan(fileID,'%f %f %f %f %f %f %f','Delimiter',{',',' '},'MultipleDelimsAsOne',1); 

옵션 2 : (즉, 작동합니다)

이 시간 내가 MultipleDelimsAsOne를 사용하지 않는하지만 정확한 구분은 쉼표 나 (\의 t와) 탭이 될 수있다.

Result = textscan(fileID,'%f %f %f %f %f %f %f','Delimiter',{',','\t'}); 
관련 문제