matlab 批量讀取execl(csv)文件

     一直沒時間整理自己寫的垃圾代碼,如今代碼亂的一團糟,今天把matlab讀取excel文件拿出來;需要根據數據格式稍作修改就可以用;

讀取核心的語句莫過這兩句:dir();  csvread();


文件下載:

%read csvdata
%author:[email protected]
%
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格式,只要改小讀取文件的命令即可。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章