你好,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

温馨提示:内容为网友见解,仅供参考
无其他回答

你好,matlab读取多个txt文件的最后一行,并将这些行分别输出到另一个t...
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 ~...

matlab读取txt文件最后一行,然后作平均。
proj_suffix = '.txt';filename = [proj_header proj_number proj_suffix];sh=textread(filename,'', 'headerlines', 2);AA=[AA;sh(end,:)];end result=mean(AA)

在Matlab中把变量输出到新的.txt文件
dlmwrite:('d:\\output.txt',f_data,'\\t');试试吧

...一个文件夹下的所有txt文件,并将这些txt文件里面的内容都写到一个t...
在那个文件夹下新建一个文本文档输入:type *.txt>>all.txt 保存为.bat文件,然后运行就可以了。

如何用matlab读取txt文件,取指定几个列,形成新的文件
纯数据比较好处理,首先得到你txt文本的路径,例如D:\\example.txt 然后在matlab中输入x=importdata('D:\\example.txt'),就会得到矩阵。多少行可以查看x矩阵

matlab怎么将我这txt文件中800行的数据(包含字符和空格)随机取600行...
用matlab解决题主的数据提取后保存的问题,第一个将txt文件中800行的数据(包含字符和空格)随机取600行是可以实现的,而第二个要保存另外一个新的txt文件有点难度,但可以保存为mat格式的文件。实现思路:1、利用textread函数,读取txt文件的数据 2、利用for循环语句,整理数据格式 3、利用randperm函数和...

matlab读取txt文件中的数据,并将数据分列分别存于向量x,y,z中
A = load('file.txt'); % 执行后,会得到一个N行3列的矩阵A。x = A(:,1); % 这样就可以取出A的第1列。y = A(:, 2);z = A(:, 3);matlab在显示矩阵的时候会提出一个10^n的因子来,别忽略。如果要查看其中某一个值,最好的方法是:disp(x(1)); % 查看x向量中的第一个...

matlab中如何读取多个txt文件中的某一行的数据
1. 逐一以文本形式打开文件 file(n).txt ;2. 逐行读出数据,并判断前9个字符是否 Timestamp ;3. 如是,在下一行接收数据存入结果并退出此文件;4. 如不是,继续往下读数据。pt = 'd:\\data\\'; % 数据路径 ff = 'file'; % 数据文件前缀 ext = '.txt'; % 数据文件扩展名 s...

如何在matlab里用循环读取多个文本文档里的数据?
办法是把这些文件的文件名按一定的规律命名,假如有一百个数据文件,则可以把这些文件分别命名为:filename1.txt,filename2.txt,fielname100.txt,在读取的时候则可以使用循环:for i = 1:100 fileName = ['filename' num2str(i) '.txt'];x = load(filiName);end ...

MATLAB如何一次读取指定多行数据?
fileout,line)如果你的txt文件数据是矩阵形式的,而没有其它的文字,用下面的程序就可以读任意行任意列的数据 a=textread('ll.txt');t=a(1:43,4:10);1:43是1到43行,4:10是4到10列的数据,当然也可以只读一个数据,如果你的matlab没有textread函数,直接从mathworks网站下载就行。

相似回答