How to extracts the data from .dat extension and create necessary equations
22 次查看(过去 30 天)
显示 更早的评论
Dear All,
Could you please advice how can I extract the data in separate column (as matrix) from .dat extension files.
As I couldn’t attached .dat format I changed the format to .txt and attached here.
I wanted to extract the data in different columns, so that I can create necessary equations related to the data.
Appreciate your help on this. Thank you.
Example:
I wanted to create a equation like,
X=current height *(channel (1,1)-offset (1,1)) *Gains(1,1)
//
Current Time: 09:58:45.550,084 on Sat, May 2021
Test ID = 1
Specific Gravity = 2.710
Initial Height = 299.196 mm
Current Height = 299.198 mm
External Radius = 75.936 sq mm
Internal Raduis = 50.659 sq mm
Gains: 71.0580 72.3243 72.2046 11.2518 11.2134 -135.2120 -1284.9134 10.2718 20.6370 428.3664 09:58:45.553,471
Offsets: -214.9100 -207.4050 -298.4060 2627.5940 488.1109 467.1530 480.3340 707.9620 1736.2213 -576.9120 09:58:45.554,955
Pore Pressure Ext Pressure Int Pressure Sample volume Inner volume Vertical Load Torque Vert Displ Tors Disp Extra LoadCell
Channels: 1 0 2 3 4 5 6 7 8 9 09:58:45.554,453
[09:58:45.608,266] Starting Saturation [B Value] Test
0.000 -164.8305 124.8016 42.3991 2627.5940 488.1109 441.8004 497.5942 707.9620 1736.2213 -574.4476 09:58:45.611,070
90.934 168.0934 483.5434 395.7570 2626.9658 494.2830 439.5142 500.3204 707.8145 1736.1221 -573.5703 09:59:04.008,055
94.728 499.9898 828.8778 742.8513 2627.4058 478.9302 432.6477 502.5279 707.5679 1736.1730 -571.3425 09:59:26.128,921
95.726 833.0510 1170.2550 1084.3226 2627.2964 478.9098 424.4029 505.2058 707.4814 1736.0662 -568.9087 09:59:43.848,887
96.691 1170.4737 1511.9120 1424.9725 2626.6200 478.5995 415.2883 508.7967 707.1889 1736.3230 -565.9917 10:00:00.872,776
98.190 1516.1540 1859.7844 1775.7950 2626.9531 478.5690 408.2413 510.9558 706.9753 1736.3790 -563.8784 10:00:18.984,704
98.118 1865.2623 2208.3308 2123.7513 2626.5717 479.2531 399.8210 514.0152 706.9473 1736.3459 -561.4421 10:00:36.176,606
98.359 2213.1856 2556.2973 2472.3129 2627.0574 479.4973 391.1209 516.3600 706.6472 1736.4273 -558.7769 10:00:54.087,494
98.421 2559.2168 2901.1332 2816.4444 2626.2970 479.6295 384.7504 518.2266 706.6701 1736.5875 -556.4702 10:01:11.601,527
98.791 2910.2173 3251.6836 3167.7628 2626.3479 479.6524 377.4643 519.1193 706.3344 1736.5417 -554.3493 10:01:30.967,275
97.739 3297.4777 3638.6668 3554.9596 2626.9252 480.5374 366.2033 519.7245 706.3192 1736.6028 -550.6872 10:01:57.663,818
[10:02:13.034,122] Saturation [B Value] Test Done
//
0 个评论
采纳的回答
Asvin Kumar
2021-5-19
I was able to verify this for your data. I used space as the delimiter and under delimiter settings I enabled "Treat multiple delimiters as one". I also set the output type to Numerical Matrix. Here's what the generated script looks like. Feel free to explore the tool and add custom options to suit your needs.
%% Import data from text file
% Script for importing data from the following text file:
%
% filename: DATA.txt
%
% Auto-generated by MATLAB on 19-May-2021 15:08:15
%% Set up the Import Options and import the data
opts = delimitedTextImportOptions("NumVariables", 20);
% Specify range and delimiter
opts.DataLines = [16, 26];
opts.Delimiter = " ";
% Specify column names and types
opts.VariableNames = ["HCT", "Data", "Acquisition", "Version", "VarName5", ...
"VarName6", "VarName7", "VarName8", "VarName9", "VarName10", "VarName11", ...
"Var12", "Var13", "Var14", "Var15", "Var16", "Var17", "Var18", "Var19", "Var20"];
opts.SelectedVariableNames = ["HCT", "Data", "Acquisition", "Version", ...
"VarName5", "VarName6", "VarName7", "VarName8", "VarName9", "VarName10", "VarName11"];
opts.VariableTypes = ["double", "double", "double", "double", "double", ...
"double", "double", "double", "double", "double", "double", "string", ...
"string", "string", "string", "string", "string", "string", "string", "string"];
% Specify file level properties
opts.ExtraColumnsRule = "ignore";
opts.EmptyLineRule = "read";
opts.ConsecutiveDelimitersRule = "join";
opts.LeadingDelimitersRule = "ignore";
% Specify variable properties
opts = setvaropts(opts, ["Var12", "Var13", "Var14", "Var15", "Var16", "Var17", ...
"Var18", "Var19", "Var20"], "WhitespaceRule", "preserve");
opts = setvaropts(opts, ["Var12", "Var13", "Var14", "Var15", "Var16", "Var17", ...
"Var18", "Var19", "Var20"], "EmptyFieldRule", "auto");
opts = setvaropts(opts, "HCT", "TrimNonNumeric", true);
opts = setvaropts(opts, "HCT", "ThousandsSeparator", ",");
% Import the data
DATA = readtable("DATA.txt", opts);
%% Convert to output type
DATA = table2array(DATA);
whos DATA
%% Clear temporary variables
clear opts
3 个评论
Asvin Kumar
2021-5-20
You definitely can. I suspect you might need to use the import tool twice (once for the matrix and once for the header data). Play around and try for yourself.
更多回答(0 个)
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Data Import and Export 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!