MATLAB에서 읽고자 하는 데이터가 화일의 부분 부분에 있을때가 있습니다. 예를 들어
이런식으로 반복되는 자료가 있는데, 이중에서 특정 포맷을 가진 숫자 데이터만 읽고 싶다면,
아래와 같이 하면 됩니다.
Cyclic Acquisition Time: 20.213867 Sec
Stored at: 100 cycle Stored for: 2 segments
Points: 2
Act#3(ch#3) Segment Count Act#3(ch#3) Stroke Act#3(ch#3) Force
segments mm N
198 0.82018322 121364.52
199 0.02860938 28405.277
Stored at: 100 cycle Stored for: 2 segments
Points: 2
Act#3(ch#3) Segment Count Act#3(ch#3) Stroke Act#3(ch#3) Force
segments mm N
198 0.82018322 121364.52
199 0.02860938 28405.277
Cyclic Acquisition Time: 40.164063 Sec
Stored at: 200 cycle Stored for: 2 segments
Points: 2
Act#3(ch#3) Segment Count Act#3(ch#3) Stroke Act#3(ch#3) Force
segments mm N
398 0.81064618 120503.7
399 -0.0095387576 29093.936
Stored at: 200 cycle Stored for: 2 segments
Points: 2
Act#3(ch#3) Segment Count Act#3(ch#3) Stroke Act#3(ch#3) Force
segments mm N
398 0.81064618 120503.7
399 -0.0095387576 29093.936
이런식으로 반복되는 자료가 있는데, 이중에서 특정 포맷을 가진 숫자 데이터만 읽고 싶다면,
아래와 같이 하면 됩니다.
A=[]; %저장될 데이터 변수 초기화
fid = fopen('c:\a.dat'); %읽고자 하는 화일 열기
while 1 %화일의 마지막 줄을 읽을때 까지 반복
tline = fgetl(fid) %화일의 한줄 내용 읽기
if tline == -1, break, end; %화일의 마지막줄까지 읽었을때 끝내기
tmp=sscanf(tline,'%g %g %g'); %읽은 화일을 포맷대로 배열
if ~isempty(tmp) %제대로 배열되었다면
A=[A;tmp']; %데이터 변수에 저장
end
end
fclose(fid); %화일 닫기
fid = fopen('c:\a.dat'); %읽고자 하는 화일 열기
while 1 %화일의 마지막 줄을 읽을때 까지 반복
tline = fgetl(fid) %화일의 한줄 내용 읽기
if tline == -1, break, end; %화일의 마지막줄까지 읽었을때 끝내기
tmp=sscanf(tline,'%g %g %g'); %읽은 화일을 포맷대로 배열
if ~isempty(tmp) %제대로 배열되었다면
A=[A;tmp']; %데이터 변수에 저장
end
end
fclose(fid); %화일 닫기