Matlab 读取dat文件(包含几行多余文本,数据带有数字和字符串,且以逗号分隔)

Posted zhouerba

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Matlab 读取dat文件(包含几行多余文本,数据带有数字和字符串,且以逗号分隔)相关的知识,希望对你有一定的参考价值。

需要删除前几行多余文本,并去除逗号和最后一列标签项,保存数据

处理前:

matlab代码:

fid = fopen(\'E:\\study\\研究生\\a\\backup新\\backup\\数据库\\ecoli1.dat\',\'rt\');
%FormatString=\'%f %f %f %f %f %f %f %s\';%取前8列数据
FormatString=\'%f %f %f %f %f %f %f %*[^\\n]\';%取前七列数据,最后一列标签去掉
% 注意:%*[^\\n] 就是从当前直接跳到行尾。%*是一个跳过符号,表示跳过该位
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\\研究生\\a\\backup新\\backup\\数据库\\test.txt\', \'wt\');%输出dat格式,将txt改一下即可。
    for j=1:r
        for m=1:c
            fprintf(fid,\'%4.2f\\t\',C(j,m));%保留两位小数点,包括小数点共4位
        end 
         fprintf(fid,\'\\n\');
    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
.......

  

  

以上是关于Matlab 读取dat文件(包含几行多余文本,数据带有数字和字符串,且以逗号分隔)的主要内容,如果未能解决你的问题,请参考以下文章

当行尾有多余空格时,将 .dat 文件转换为 DataFrame

Matlab中如何读取.dat文件

如何在 MATLAB 中读取包含数字的文本文件?

MATLAB - 读取多个用于循环的dat文件

Matlab读取TXT文件并跳过中间几行的问题!!

MATLAB;如何从头文件(文本文件)中提取信息