Here's a function that I've created that can be called by:
Here's the function uploaded to GitHub
Function Call:
File_Name = "Tryout.txt";
Subsection_Text(File_Name);
The code below isn't the most concise but it should do the trick. It parses the text file line by line using the function fgetl(). The blank lines are used as delimiters for starting a new file. The tricky part involved the way MATLAB can evaluate spaces as a character. Using the fact that every line in this data set either has an X, Y or Z character sets the definition for what constitutes as a line.
Full Script:
clear;
clc;
Mode = 'rt';
File_ID = fopen("Tryout.txt",Mode);
Break_Condition = 0;
Line_Index = 1;
while(Break_Condition < 3)
Text = string(fgetl(File_ID));
Empty = ~contains(Text,["X" "Y" "Z"]);
if(~Empty)
Break_Condition = 0;
Lines(Line_Index,1) = Text;
end
if(Empty)
Break_Condition = Break_Condition + 1;
Lines(Line_Index,1) = "";
end
Line_Index = Line_Index + 1;
end
Lines = Lines(1:length(Lines)-3);
fclose(File_ID);
Break_Condition = 0;
Block_Index = 1;
Save_File_ID = fopen("data" + num2str(Block_Index) +".txt",'w');
for Line_Index = 1: length(Lines)
Print_Text = Lines(Line_Index,1);
if(Print_Text ~= "")
Break_Condition = 0;
fprintf(Save_File_ID,"%s",Lines(Line_Index,1));
fprintf(Save_File_ID,"\n");
end
if(Print_Text == "")
Break_Condition = Break_Condition + 1;
if(Break_Condition == 2)
fprintf("Start new file\n");
Block_Index = Block_Index + 1;
Save_File_ID = fopen("data" + num2str(Block_Index) +".txt",'w');
end
end
Results:
Tryout.txt
1 S X 0.00026468 0.05840333 -0.00000503 0.00000220 -0.00006671
Y 0.01038702 -0.00000313 0.00000194 0.00000252 0.05330246
Z -0.00000018 0.00000340 0.04070305 0.00007263 -0.00000140
2 S X 0.00014171 0.03011383 0.00010166 -0.05798360 -0.00000669
Y 0.04058891 -0.00017498 0.00020915 -0.00000008 0.01402693
Z -0.03503189 0.00020203 0.04033549 0.00007595 0.04355313
3 S X 0.00014261 0.03010885 -0.00010647 0.05798668 -0.00001234
Y 0.04058889 -0.00017504 -0.00020776 0.00000080 0.01402683
Z 0.03503150 -0.00019534 0.04033281 0.00007114 -0.04355608
1 S X 0.04356337 -0.00000001 0.02077084 0.00000015 0.00000034
Y 0.00002152 -0.00000006 0.00000140 0.00000007 0.00877642
Z 0.00000016 0.00000034 0.00000006 -0.01895397 -0.00000002
2 S X -0.03932055 0.00258729 -0.03252282 0.00000100 0.00000117
Y 0.00000868 -0.00000106 0.00000134 -0.03714789 0.00961379
Z 0.00001393 0.00000251 -0.00000096 0.05653194 -0.05987231
3 S X -0.03931981 -0.00258731 -0.03252280 -0.00000137 0.00000116
Y 0.00000868 0.00000102 0.00000088 0.03714794 0.00961382
Z -0.00001360 0.00000259 0.00000015 0.05653178 0.05987235
1 S X 0.00000001 -0.00000000 0.00000000 0.00000003 0.00000000
Y -0.00000002 0.00000000 -0.00000000 -0.00993526 0.00000000
Z -0.03154647 0.00000025 0.02119553 0.00000000 0.00793086
2 S X 0.00000002 0.01626500 -0.00000011 0.00000003 -0.00000006
Y 0.04786716 -0.00000021 -0.02203705 0.01792716 0.02061079
Z 0.00338406 0.00000018 0.03888413 -0.02145517 0.01502515
3 S X -0.00000002 -0.01626500 0.00000011 0.00000003 0.00000006
Y -0.04786706 0.00000021 0.02203705 0.01792717 -0.02061079
Z 0.00338411 0.00000018 0.03888412 0.02145518 0.01502514
data1.txt
1 S X 0.00026468 0.05840333 -0.00000503 0.00000220 -0.00006671
Y 0.01038702 -0.00000313 0.00000194 0.00000252 0.05330246
Z -0.00000018 0.00000340 0.04070305 0.00007263 -0.00000140
2 S X 0.00014171 0.03011383 0.00010166 -0.05798360 -0.00000669
Y 0.04058891 -0.00017498 0.00020915 -0.00000008 0.01402693
Z -0.03503189 0.00020203 0.04033549 0.00007595 0.04355313
3 S X 0.00014261 0.03010885 -0.00010647 0.05798668 -0.00001234
Y 0.04058889 -0.00017504 -0.00020776 0.00000080 0.01402683
Z 0.03503150 -0.00019534 0.04033281 0.00007114 -0.04355608
data2.txt
1 S X 0.04356337 -0.00000001 0.02077084 0.00000015 0.00000034
Y 0.00002152 -0.00000006 0.00000140 0.00000007 0.00877642
Z 0.00000016 0.00000034 0.00000006 -0.01895397 -0.00000002
2 S X -0.03932055 0.00258729 -0.03252282 0.00000100 0.00000117
Y 0.00000868 -0.00000106 0.00000134 -0.03714789 0.00961379
Z 0.00001393 0.00000251 -0.00000096 0.05653194 -0.05987231
3 S X -0.03931981 -0.00258731 -0.03252280 -0.00000137 0.00000116
Y 0.00000868 0.00000102 0.00000088 0.03714794 0.00961382
Z -0.00001360 0.00000259 0.00000015 0.05653178 0.05987235
data3.txt
1 S X 0.00000001 -0.00000000 0.00000000 0.00000003 0.00000000
Y -0.00000002 0.00000000 -0.00000000 -0.00993526 0.00000000
Z -0.03154647 0.00000025 0.02119553 0.00000000 0.00793086
2 S X 0.00000002 0.01626500 -0.00000011 0.00000003 -0.00000006
Y 0.04786716 -0.00000021 -0.02203705 0.01792716 0.02061079
Z 0.00338406 0.00000018 0.03888413 -0.02145517 0.01502515
3 S X -0.00000002 -0.01626500 0.00000011 0.00000003 0.00000006
Y -0.04786706 0.00000021 0.02203705 0.01792717 -0.02061079
Z 0.00338411 0.00000018 0.03888412 0.02145518 0.01502514