需要删除前几行多余文本,并去除逗号和最后一列标签项,保存数据
处理前:
matlab代码:
fid = fopen('E:study研究生aackup新ackup数据库ecoli1.dat','rt'); %FormatString='%f %f %f %f %f %f %f %s';%取前8列数据 FormatString='%f %f %f %f %f %f %f %*[^ ]';%取前七列数据,最后一列标签去掉 % 注意:%*[^ ] 就是从当前直接跳到行尾。%*是一个跳过符号,表示跳过该位 N=348;%读取数据的行数 C=textscan(fid,FormatString,N,'HeaderLines',12,'delimiter',','); %跳过前12行,以逗号为数据的分隔符 C=cell2mat(C);%cell型数组转换为普通数组 fclose(fid); [r,c]=size(C); fid = fopen('E:study研究生aackup新ackup数据库 est.txt', 'wt');%输出dat格式,将txt改一下即可。 for j=1:r for m=1:c fprintf(fid,'%4.2f ',C(j,m));%保留两位小数点,包括小数点共4位 end fprintf(fid,' '); end fclose(fid);%保存为test文件
输出后txt文件:
0.49 0.29 0.48 0.50 0.56 0.24 0.35
0.07 0.40 0.48 0.50 0.54 0.35 0.44
0.56 0.40 0.48 0.50 0.49 0.37 0.46
0.59 0.49 0.48 0.50 0.52 0.45 0.36
0.23 0.32 0.48 0.50 0.55 0.25 0.35
0.67 0.39 0.48 0.50 0.36 0.38 0.46
0.29 0.28 0.48 0.50 0.44 0.23 0.34
0.21 0.34 0.48 0.50 0.51 0.28 0.39
0.20 0.44 0.48 0.50 0.46 0.51 0.57
.......