Find specific vector in different text files
1 回表示 (過去 30 日間)
古いコメントを表示
Hello everybody!
I have several different text-files, which look very similar but have minor differences. I have created a dummy text file, to show you how my files look:
Note: Everything in this dummy is "fake".
Now I have a huge number of files like this. But the only thing I need is the distance vector which is named "Distance" in every file.
I tried this code, but it doesn't work so far:
[pathstr,filename{actualfilenumber},ext] = fileparts(files{actualfilenumber});
complete_file_name{actualfilenumber} = fullfile(Path,char([filename{actualfilenumber},ext]));
actualfile = textscan(complete_file_name{actualfilenumber},'%s');
Distance = double(actualfile(:,find(ismember('Distance',actualfile))));
Any suggestions?
Cheers Christian
2 件のコメント
採用された回答
Guillaume
2017 年 1 月 27 日
filecontent = fileread('DummyText1.txt');
distances = str2double(strsplit(regexp(filecontent, '(?<=Distance.*[\n\r]+)[ 0-9.\n\r]*(?=/Distance)', 'match', 'once', dotexceptnewline')));
distances(isnan(distances)) = [];
As long as the distance numbers are not signed and not in scientific notations. To support signed numbers replace [ 0-9.\n\r] by [-+ 0-9.\n\r]. To support scientific notation in addition, replace it with [-+ 0-9.e\n\r].
その他の回答 (1 件)
KSSV
2017 年 1 月 27 日
fid = fopen('your text file') ;
distance = textscan(fid,'%f','Headerlines',15,'delimiter','\n') ;
fclose(fid) ;
6 件のコメント
参考
カテゴリ
Help Center および File Exchange で Text Data Preparation についてさらに検索
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!