how to scan text
이전 댓글 표시
on those files:
on the 5th line there [are these] data:
# Number of frequencies : 8 (2, 4, 6, 8, 10, 12, 14, 16 GHz)
# Number of frequencies : 4 (4, 8, 12, 16 GHz)
i need to create a vector with those values i tried to locate the number 8 or 4 using textscan and to make a for loop n times to get those integers, but it didn't work, maybe there is something with the (,)
any suggestions?
채택된 답변
추가 답변 (2개)
Guillaume
2014년 12월 2일
You have to use low level io functions if you want to parse the header:
fid = fopen('rectTE_8f.exp', 'rt');
for l = 1:4
fgetl(fid); %skip first four lines
end
numfreq = fscanf(fid, '# Number of frequencies : %d (');
frequencies = fscanf(fid, '%d, ', [1 numfreq]);
fgetl(fid); %get rest of line
for l = 6:10
fgetl(fid); %skip rest of header
end
arr = textscan(fid, ...); %get rest of file with textscan
fclose(fid);
dpb
2014년 12월 2일
When you get to that line, either by headerlines or previously parsing if you need some of those data, then
n=cell2mat(textscan(fid,'# Number of frequencies : %d (')); % read the number of freq's
Now you can build a format string using that value as--
fmt=['(' repmat('%d,',1,n-1) '%d GHz)'];
f=cell2mat(textscan(fid,fmt));
카테고리
도움말 센터 및 File Exchange에서 Creating, Deleting, and Querying Graphics Objects에 대해 자세히 알아보기
제품
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!