How do I get readtable to skip lines with certain text?
55 ビュー (過去 30 日間)
古いコメントを表示
Text file for example:
2021/07/20 17:32:11> VO1= 81 VS1= 80 I1= 10.2 VO2= 0 VS2= 0 I2= 0.0
2021/07/20 17:32:11> HV ramping finished.
2021/07/20 17:33:04> VO1= 100 VS1= 100 I1= 5.0 VO2= 0 VS2= 0 I2= 0.0
How do I get readtable to skip lines with text like the line with "HV ramping finished"? I've tried using TreatAsMissing and CommentStyle but neither seemed to work.
0 件のコメント
採用された回答
dpb
2021 年 7 月 26 日
That's not a great format for readtable to try to parse -- it's got the variable names as columms and so are interpreted as data -- and the 'TreatAsMissing' works only for numeric variables for some reason I've never fully understood/yet understand the logic behind.
It takes quite a lot of munging on the import options object, but one can make it happen -- whether it's easier that way or to just read as cellstr array and edit in place is probably a tossup..
opt=detectImportOptions('erik.dat','Delimiter',{'>','='},'ReadVariableNames',0); % start with basic object
opt.DataLines=[1 inf]; % it wants skip the second record on its own
opt.MissingRule='omitrow'; % this fixes up the bum row
opt.VariableTypes=[{'datetime','char'} repmat({'double'},1,6)]; % set the types since it can't tell with the Vxx=
opt=setvaropts(opt,3:8,'trimnonnumeric',1); % this strips the variable name
opt.SelectedVariableNames=opt.VariableNames([1 3:end]); % the first V01 is second variable
opt=setvaropts(opt,"Var1","InputFormat",'yyyy/MM/dd HH:mm:ss'); % import datetime format
tErik=readtable('erik.dat',opt,'ReadVariableNames',0);
This returns
>> tErik
tErik =
2×7 table
Var1 Var2 Var3 Var4 Var5 Var6 Var7
___________________ ______ ______ _____ ____ ____ ____
2021/07/20 17:32:11 81.00 80.00 10.20 0.00 0.00 0.00
2021/07/20 17:33:04 100.00 100.00 5.00 0.00 0.00 0.00
>>
This doesn't return the variable names; that can be managed by reading one record first and parsing it for the variable names that can be used to set them programmatically.
0 件のコメント
その他の回答 (0 件)
参考
カテゴリ
Help Center および File Exchange で String Parsing についてさらに検索
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!