问题描述
在将数据从文本文件解析为MATLAB时遇到了问题。文本文件的字符串之间具有不连续性(它具有空格),并且似乎每次我尝试将数据导入MATLAB时,它都将所有内容组合在一起并弄乱了数据。我想基本读取文本文件(附加)并将相应的字符串及其值导入结构。 我也尝试将文件导入Excel,看看是否可以用更好的格式对数据进行定界,以便我可以轻松地将其导入MATLAB,但是excel也不喜欢数据格式,它会将每个单词分解成一列,将所有内容弄乱了也一样 任何帮助将不胜感激。
#Setup the Import Options and import the data
opts = delimitedTextImportOptions("NumVariables",3);
% Specify range and delimiter
opts.DataLines = [2,Inf];
opts.Delimiter = ",";
% Specify column names and types
opts.VariableNames = ["TITLE","BEGININPUTDATAECHO","VarName3"];
opts.VariableTypes = ["string","string","string"];
% Specify file level properties
opts.ExtraColumnsRule = "ignore";
opts.EmptyLineRule = "read";
% Specify variable properties
opts = setvaropts(opts,["TITLE","VarName3"],"WhitespaceRule","preserve");
opts = setvaropts(opts,"EmptyFieldRule","auto");
% Import the data
ATR42500zjf2 = readtable("file",opts);
%% Clear temporary variables
clear opts
这是文本文件(因为我无法附加它):
#NAMELIST $KDSD
ASDCSD,ASCDDF,HFSDCA AND CASDEC SASDW
DESCRIPTION NAME VALUE DIMENSIONS
A11 DATA
ABC CAD AAS ASDF SCAS 0.0000
WEFADFSA FASD GRSA FDS 3.3454
FAS FASF FWEQ EDASA 1.2534
FWE FWEFWEFW FWEF SEFEFEW 984.0 DEG
EW FWE VED FEW VWE GEWEEW 0.0 DEG
VWE WE WE WEFEWFWEFWE WEERQ 0
EWF GRWDOSS WEWE WER 1.000
SDFSFS SDFSDF VDSF SDFS 4.600
A12 DATA
ASDASD DCASH 1.0000 LBS
SDVDS VSD VSD ASCX CASS 0.00 M
SDAFSD ASFDS 23.53 M
SDFSDF BSDFVSDA FSDAF GACFEA 0.3330
JYTHHFG FG JDFGBDFDV STQSEW 0.4575
SDFDS SDFSDF FDSC Hfdb SVDSDVS 2.0000
CZXCC DVDSSAD FBVSDS GRQASW 0.0000
A13 DATA
ASDD VSDV 1.0000 M
ASDAS ASFEW ASDSDA VSDA 6.23 LBS
ASDF RWFSD SDFV 8.44
AASFS GBSDS GSDF 0.5597
TASD SERT 0.4554
POAIS ADAS OJENS PASKDM SDFD 5.0000
解决方法
我能够做到以下几点:
opts = fixedWidthImportOptions('NumVariables',4,'VariableWidths',[30 12 6 12]);
opts.VariableNames = {'DESCRIPTION' 'NAME' 'VALUE' 'DIMENSIONS'};
opts.DataLines = [2 Inf];
a = readtable('test.txt',opts);
data_struct = struct(a);