의 출력은 다음을 시도
FID = fopen('datafile.dat');
data = textscan(FID,'%f %f %f %f', 'headerLines', 6);
fclose(FID);
,
data
은 1x4 셀 어레이입니다. 각 셀에는 데이터의 각 열에있는 값인 3x1 배열의 double 값이 포함됩니다.
data{2}
및 data{4}
을 실행하여 데이터의 두 번째 및 네 번째 열에 액세스 할 수 있습니다. 원래 코드와
은 주요 문제는 데이터 파일이 헤더 라인을 가지고 있지만 당신은 단지 이 있음을 지정한 것입니다.
그러나 formatSpec과 일치하는 횟수 지정 문제가 발생합니다. 당신은 부동 소수점 값 4 번과 일치를 시도하도록 지정 코드
data = textscan(FID,'%f',4);
다음과 같은 예를 들어보십시오. 4 개의 값을 일치시킨 후 textscan
이 중지됩니다. 그래서 간단하게하기 위해 들어, 데이터 파일은 데이터 (즉, 헤더 라인), 그 코드를 여러 번 실행할 때 다음 다음과 같은 결과를 얻을 것입니다 포함되어 있다고 가정 해 봅시다 :
이
>> FID = fopen('datafile_noheaders.dat');
>> data_line1 = textscan(FID,'%f', 4)
data_line1 =
[4x1 double]
>> data_line1{1}'
ans =
1 2 3 4
>> data_line2 = textscan(FID,'%f', 4)
data_line2 =
[4x1 double]
>> data_line2{1}'
ans =
5 6 7 8
>> data_line3 = textscan(FID,'%f', 4)
data_line3 =
[4x1 double]
>> data_line3{1}'
ans =
9 10 11 12
>> data_line4 = textscan(FID,'%f', 4)
data_line4 =
[0x1 double]
>> fclose(FID);
공지 사항을 그 textscan 추천 그것이 호출 될 때마다 "중단"됩니다. 이 경우 textscan이 호출 된 처음 세 번은 데이터 파일에서 4x1 열 데이터를 포함하는 셀의 형태로 한 행을 반환합니다. 네 번째 호출은 빈 셀을 반환합니다. 설명 된 사용법에 대해이 형식은 특히 도움이되지 않습니다.
상단에 표시된 예제는 수행하려는 작업에 대해 훨씬 쉽게 작업 할 수있는 형식으로 데이터를 반환해야합니다. 이 경우 각 데이터 행에서 4 개의 부동 소수점 값과 일치하며 더 이상이 패턴과 일치하지 않을 때까지 각 텍스트 행을 계속 사용합니다.
'[data]'도 헤더이므로'headerLines', 6'이 필요합니다. –