Importing cnv file with header lines

I have a folder of cnv files that I need to import into matlab. Each file has about 130 header lines. I attempted to use the code
% Data = readtable('d941006.cnv','HeaderLines',130);
but received an error. I can only use import function if I remove the header lines from each file, but I have 171 files to upload and that would be too time consuming. I attached the link to the data as well. Any help would be much appreciated data file

 採用された回答

per isakson
per isakson 2017 年 8 月 2 日
編集済み: per isakson 2017 年 8 月 5 日

1 投票

Given
  • the entire file fits in a fraction of the memory
  • *END* is the last line before the numerical part of the file. (This is the only occurrence of *END*.)
  • all files have 29 columns of numerical data
then one way is
str = fileread( 'd94i006.txt' );
str = regexp( str, '(?<=\*END\*\s+).+$', 'match' );
cac = textscan( str{1}, repmat('%f',[1,29]), 'CollectOutput',true );
num = cac{1};
result
>> whos num
Name Size Bytes Class Attributes
num 339x29 78648 double
Note: "has about 130 header lines." makes it safer to use the line *END*.
In response to comment "loop [...] every file from the folder?"
Try
>> cac = cssm( 'c:\your_folder\with_data\' );
where in one file
function cac = cssm( folderspec )
sas = dir( fullfile( folderspec, '*.txt' ) );
len = length( sas );
cac = cell( 1, len );
for jj = 1 : len
cac{jj} = cssm_( fullfile( folderspec, sas(jj).name ) );
end
end
function num = cssm_( filespec )
str = fileread( filespec );
str = regexp( str, '(?<=\*END\*\s+).+$', 'match' );
cac = textscan( str{1}, repmat('%f',[1,29]), 'CollectOutput',true );
num = cac{1};
end
As is; Not tested Needed: better names and some comments. There is a magic number, 29, in the code.

3 件のコメント

andrea molina
andrea molina 2017 年 8 月 4 日
that worked thank you so much!
andrea molina
andrea molina 2017 年 8 月 4 日
would there be a way to add that to a loop if I wanted to import every file from the folder?
per isakson
per isakson 2017 年 8 月 5 日
See added code

サインインしてコメントする。

その他の回答 (0 件)

カテゴリ

ヘルプ センター および File ExchangeLarge Files and Big Data についてさらに検索

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by