Loading Text File with Multiple sections of headers
이전 댓글 표시
Hi All, I am trying to using the "importdata" command to import to Matlab 2012a from a file that has multiple sections of headers. The file looks like:
header header header
1 1 1
1 1 1
header header header
2 2 2
2 2 2
However, import data will only return the data after the first line of headers (in this example a 2x3 matrix of 1's). How can I get it to also read the data after the second set of headers (so a 4x3 matrix for this example of 1's then 2's). Thank you for the help.
Brendan
댓글 수: 2
Walter Roberson
2012년 6월 8일
Do you know the exact amount of data in each section ahead of time?
Do you want the data broken up into parts, or do you want all the data together?
Does the header always start with the same string?
Brendan
2012년 6월 8일
채택된 답변
추가 답변 (1개)
per isakson
2012년 6월 8일
importdata cannot handle your file.
An approach is to
- read the file as characters to a string, buf
- split the string, buf, into one string of characters per block of header&data
- parse each block with textscan
Something like
function M = Answer( )
fid = fopen( 'cssm.txt', 'r' );
buf = fread( fid, '*char' );
sts = fclose( fid );
while buf > 0
ix2 = first position of next header
str = buf( 1 : ix2-1 );
buf( 1 : ix2-1 ) = [];
cac = textscan( str, format );
peel off the braces
end
end
or write the blocks to separate files and read with importdata.
카테고리
도움말 센터 및 File Exchange에서 Large Files and Big Data에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!