一直沒時間整理自己寫的垃圾代碼,如今代碼亂的一團糟,今天把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格式,只要改小讀取文件的命令即可。