关于在MATLAB读取同一路径下多个txt或mat文件总结

1.读取同一路径下所有txt文件的程序:点击打开链接

function data = readall_txt(path)
%   READALL_TXT    读取所有文件
%   DATA = READALL_TXT(PATH)读取路径PATH下的所有txt文件中的数据赋给data
%   txt文件中含有一个数据项
%   输出cell格式以免各txt中数据长度不同
%
%   原始版本:V1.0   作者:李鹏   时间:2009.04.04
A = dir(fullfile(path,'*.txt'));
% 读取后A的格式为      
%                   name  -- filename
%                   date  -- modification date
%                   bytes -- number of bytes allocated to the file
%                   isdir -- 1 if name is a directory and 0 if not
A = struct2cell(A);
num = size(A);
for k =0:num(2)-1
    x(k+1) = A(4*k+1);% 找出name序列
end
for k = 1:num(2)
    newpath = strcat(path,'\',x(k));
    data{k} = load(char(newpath));
end
% [EOF] readall_txt.m

2 读取所有路径下所有mat文件的程序

  2.1 所有mat文件只有一个变量的程序

function data = read_mat(path)
%   READ_MAT    读取所有文件
%   DATA = READ_MAT(PATH)读取路径PATH下的所有mat文件中的数据赋给data
%   前提是每个MAT文件只含有一个变量,如果含有多个,则使用READ_MAT
%   输出cell格式以免各mat中数据长度不同
%   输出data后,如要使用请用格式data{index}访问各数据项
%
%   原始版本:V1.0   作者:李鹏   时间:2009.04.04
%   修改版本:V1.1   修改内容:适应mat文件只有一个变量的情况   时间:2009.04.05
%
A = dir(fullfile(path,'*.mat'));
% 读取后A的格式为      
%                   name  -- filename
%                   date  -- modification date
%                   bytes -- number of bytes allocated to the file
%                   isdir -- 1 if name is a directory and 0 if not
A = struct2cell(A);
num = size(A);
for k =0:num(2)-1
    x(k+1) = A(4*k+1);% 找出name序列,x存储内容为*.mat
end
for k = 1:num(2)
    newpath = strcat(path,'\',x(k));
    temp = load(char(newpath));
    matname = char(fieldnames(temp));% 获取结构成员名称
    data{k} = getfield(temp,matname);% 获取该名称下的成员内容
end
% [EOF] read_mat.m
2.2 所有mat文件只有一个变量的程序

function data = readall_mat(path)
%   READALL_MAT    读取所有文件
%   DATA = READALL_MAT(PATH)读取路径PATH下的所有mat文件中的数据赋给data
%   mat文件中含有多个数据项
%   输出cell格式以免各数据项长度不同
%   输出data后若要使用data中的内容请使用data{index}访问
%
%   原始版本:V1.0   作者:李鹏   时间:2009.04.04
A = dir(fullfile(path,'*.mat'));
% 读取后A的格式为      
%                   name  -- filename
%                   date  -- modification date
%                   bytes -- number of bytes allocated to the file
%                   isdir -- 1 if name is a directory and 0 if not
A = struct2cell(A);
num = size(A);
for k =0:num(2)-1
    x(k+1) = A(4*k+1);
end
m = 1;
for k = 1:num(2)
    newpath = strcat(path,'\',x(k));
    temp = load(char(newpath));
    temp = struct2cell(temp);
    num2 = size(temp);
    for l = 1:num2(1)
        data{m} = temp{l};
        m = m+1;
    end
end
% [EOF] readall_mat.m





评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值