你好,matlab读取多个txt文件的最后一行,并将这些行分别输出到另一个txt文件里

前5行是字母代码 后面都是n行5列的数据,大概1万多行,求大神帮忙
这100个txt文件命名为“measure1.0.txt”-“measure100.0.txt

pt = 'd:\data\';    % 换成自己的路径
ff = 'measure';     % 文件前缀
et = '.0.txt';      % 文件后缀及扩展名
n = 100;            % 文件数量
R = zeros(n,5);     % 结果矩阵
for p = 1:n
    ss = num2str(p)
    fn = [pt ff ss et];
    fid = fopen('0.txt');
    while ~feof(fid)
        tl = fgetl(fid);
    end
    fclose(fid);
    R(p) = str2num(tl);
end
nfn = [pt ff 'R.txt'];  % 结果文件名
save(nfn,'R','-ascii'); % 结果存为文本文件 R.txt

追问

我先用5个txt文件试了试,出现这个错误 大神帮帮忙

追答pt = 'd:\data\';    % 换成自己的路径
ff = 'measure';     % 文件前缀
et = '.0.txt';      % 文件后缀及扩展名
n = 100;            % 文件数量
R = zeros(n,5);     % 结果矩阵
for p = 1:n
    ss = num2str(p)
    fn = [pt ff ss et];
    fid = fopen('0.txt');
    if fid = -1       % 估计是打开文件错误造成(文件名错误、文件不存在、文件受损等)
         disp('打开文件错误');
         continue; 
    end;    
    while ~feof(fid)
        tl = fgetl(fid);
    end
    fclose(fid);
    R(p) = str2num(tl);
end
nfn = [pt ff 'R.txt'];  % 结果文件名
save(nfn,'R','-ascii'); % 结果存为文本文件 R.txt

追问

追答

%% 对不起,大意了

if fid == -1          % 逻辑值判断

追问

确实是 打开文件错误 ,我这个文件是这样的 我给你看看

,结果文件

这怎么办

追答pt = 'd:\data\';    % 换成自己的路径
ff = 'measure';     % 文件前缀   %% 注意文件名是否规律
et = '.0.txt';      % 文件后缀及扩展名
n = 100;            % 文件数量
R = zeros(n,5);     % 结果矩阵
for p = 1:n
    ss = num2str(p)
    fn = [pt ff ss et];
    fid = fopen(fn);  % 改正后!          
    if fid = -1       % 估计是打开文件错误造成(文件名错误、文件不存在、文件受损等)
         disp('打开文件错误');
         continue; 
    end;    
    while ~feof(fid)
        tl = fgetl(fid);
    end
    fclose(fid);
    R(p) = str2num(tl);
end
nfn = [pt ff 'R.txt'];  % 结果文件名
save(nfn,'R','-ascii'); % 结果存为文本文件 R.txt

追问

这是结果文件名,和运行出来结果,文件错误 里面全是0 

追答

%% 检查

    路径、文件名是否正确;

    文件有没有正常打开;

    文件里有没有数据;

    文件数据是否象你描述的那样规律;

    代码上面应该没有什么问题了;

    我加了一点提示信息,再折腾折腾吧!

pt = 'C:\Users\Jang\Documents\MATLAB\Gangchang3\xin\try\';    % 路径
ff = 'mearesults';     % 文件前缀   
et = '.0.txt';              % 文件后缀及扩展名
n = 100;                   % 文件数量
R = zeros(n,5);      % 结果矩阵
for p = 1:n
    ss = num2str(p);
    fn = [pt ff ss et];
    fid = fopen(fn);  % 改正后!          
    if fid = -1       % 估计是打开文件错误造成(文件名错误、文件不存在、文件受损等)
         disp(['第 ' ss ' 个文件打开错误']);
         disp(['文件名:' fn]);
         continue; 
    end;    
    while ~feof(fid)
        tl = fgetl(fid);
    end
    fclose(fid);    
    disp(['第 ' ss ' 个文件最后一行数据']);
    disp(tl);
    R(p) = str2num(tl);
end
nfn = [pt ff 'R.txt'];  % 结果文件名
save(nfn,'R','-ascii'); % 结果存为文本文件 R.txt

温馨提示:答案为网友推荐,仅供参考
相似回答