Read only numerical values from mixed text file
5 次查看(过去 30 天)
显示 更早的评论
Hi,
I have a text file with two matrices. One contains Nodes No., X,Y,Z values and the other contains Bar No., Start , End values. I have text before and between them. I would like to create a general code to extract those two matrices no matter the size. Please see file attached.
Thank you in advance.
Regards,
Ana
0 个评论
回答(1 个)
dpb
2019-7-8
Something like
fmt1='NODes %n ELEments %n'; % info line nodes, elements in file
fmt2=repmat('%f',1,4);
fmt3=repmat('%f',1,3);
fid=fopen('yourfile.txt','r');
nums=textscan(fid,fmt1),1,'headerlines',9);
nNodes=nums{1};
nElems=nums{2};
NODES=cell2mat(textscan(fid,fmt2),nNodes,'headerlines',8));
BARS=cell2mat(textscan(fid,fmt3),nElems,'headerlines',8));
fid=fclose(fid);
2 个评论
dpb
2019-7-8
Ewww...looking at the file, it's some multi-byte format and Matlab has problems with those.
I'm sure there's probably a way to deal with it, but I don't have the time right now to try to do so, sorry...
fgetl for the header lines looks like--
>> for i=1:20,l=fgetl(fid),strfind(l,'NODes'),end
l =
'��; + - - - - - - - - - - - - - - - - - - - - - - - - - - - + - - - - - - - - - - - - - - - - - - - - - - - - - + - - - - - - - - - - - - - - - - - - - - - + '
ans =
[]
l =
' '
ans =
[]
l =
' ; ! F i l e N a m e : T - W h a r f _ B e r t ! D a t e : 0 7 / 0 2 / 1 9 1 4 : 1 0 ! R O B O T 9 7 v . 3 2 . 0 ! '
ans =
[]
l =
' '
ans =
[]
l =
' ; + - - - - - - - - - - - - - - - - - - - - - - - - - - - + - - - - - - - - - - - - - - - - - - - - - - - - - + - - - - - - - - - - - - - - - - - - - - - + '
ans =
[]
l =
' '
ans =
[]
l =
' R O B O T 9 7 '
ans =
[]
l =
' '
ans =
[]
l =
' '
ans =
[]
l =
' '
ans =
[]
l =
' S H E l l '
ans =
[]
l =
' '
ans =
[]
l =
' '
ans =
[]
l =
' '
ans =
[]
l =
' N U M b e r i n g D I S c o n t i n u o u s '
ans =
[]
l =
' '
ans =
[]
l =
' '
ans =
[]
l =
' '
ans =
[]
l =
' N O D e s 2 0 4 4 E L E m e n t s 1 7 1 7 '
ans =
[]
l =
' '
ans =
[]
>>
so the string matching fails as well as the line count from just looking at the file.
另请参阅
类别
在 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!