matlab 批量读取execl(csv)文件

     一直没时间整理自己写的垃圾代码,如今代码乱的一团糟,今天把matlab读取excel文件拿出来;需要根据数据格式稍作修改就可以用;

读取核心的语句莫过这两句:dir();  csvread();


文件下载:

%read csvdata
%author:enjoy_learn@126.com
%
function x=batch_read(str,N)
i_del=[];
str1=[str,'\*.csv'];
jiegou=dir(str1);%等价于下面这行
geshu=length(jiegou);
x=zeros(geshu,N);
% cunchu=zeros(geshu,10);
for i=1:geshu

filename=[str,'\',jiegou(i,1).name];%等于上面这条语句

 try

x(i,:)=csvread(filename);
 catch
 recycle('on');
 filename
 delete(filename)   %删除空文件
 i_del=[i_del,i];
 disp(['原始数据的第',num2str(i),'被删除了,-导出的空数据-:']);
 continue%直接执行下次循环
 
 end

end
i_del
x(i_del,:)=[];%删除空初始化命名的空行,无效问题
end
function x=batch_read(str)
i_del=[];
str1=[str,'\*.csv'];
jiegou=dir(str1);%等价于下面这行
% jiegou=dir('');%按字母顺序排序,存在结构体内
% jiegou = struct2cell(jiegou);
geshu=length(jiegou);
x=cell(1,geshu);
% cunchu=zeros(geshu,10);
for i=1:geshu
% i
filename=[str,'\',jiegou(i,1).name];%等于上面这条语句
% filename
% filename=['E:\matlab_work\tChart',num2str(i),'.xls'];
 try
% x(i,:)=csvread(filename);%filename本身就带' ',再加'','filename'出错
% x(i,:)=csvread(filename);%filename本身就带' ',再加'','filename'出错
x{i}=csvread(filename);
 catch
 recycle('on');
 filename
 delete(filename)   %删除空文件
 i_del=[i_del,i];
 disp(['原始数据的第',num2str(i),'被删除了,-导出的空数据-:']);
 continue%直接执行下次循环
 
 end


end
i_del
x(i_del,:)=[];%删除空初始化命名的空行,无效问题
end

 
如此,便能将csv或excel文件批量读取进来。若是txt格式,只要改小读取文件的命令即可。
 
 

  • 5
    点赞
  • 27
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值