
Matlab提取多个文件夹里同文件名csv文件
http://pan.baidu.com/s/1i3Fxjfv 密码:
yv96。解压即知目录结构。
现在,需要提取每一个600000.csv中的第二列数据,但要从第一列中的0930XX开始(也就是前面的0925XX对应的第二列部分数据要去掉),然后将得到的1xN矩阵保存为2014XXYY这样日期为文件名(所在文件夹即如此命名)的mat文件,其中的变量均命名为Y,保存到m文件所在文件夹,m文件位于2013根目录内或桌面均可。
另,若过于麻烦,则只要按日期循环即可,月份我可手动完成。
若比较简单,则可否把600000.csv作为输入变量?这样我输入文件名之后程序再运行提取数据。
非常感谢您的帮助!
一个小的思路变化,m文件链接:链接:http://pan.baidu.com/s/1dD4FWrv 密码:si2a,非常感谢。 展开
clc;clear all;
file = input('要处理的数据文件名:','s');
path = cd();
s1 = dir(path);
[m,n]=size(s1);
for i = 3:m
if s1(i).isdir
s2 = dir([path '/' s1(i).name]);
[p,q]=size(s2);
for j = 3:p
csvfilename = [path '\' s1(i).name '\' s2(j).name '\' file];
fprintf('%s\n',csvfilename);
[d1,Y]=textread(csvfilename,'%d%f%*[^\n]','delimiter',',');
Y(find(d1<93000))=[]; %去掉093000之前的数据
matfilename = [s2(j).name '.mat'];
save(matfilename,'Y');
end
end
end
要处理的数据文件名:SH600000.CSV
D:\MATLAB\working\2013\201301\20130102\SH600000.CSV
D:\MATLAB\working\2013\201301\20130103\SH600000.CSV
D:\MATLAB\working\2013\201301\20130104\SH600000.CSV
D:\MATLAB\working\2013\201301\20130105\SH600000.CSV
D:\MATLAB\working\2013\201301\20130122\SH600000.CSV
D:\MATLAB\working\2013\201301\20130131\SH600000.CSV
D:\MATLAB\working\2013\201302\20130203\SH600000.CSV
D:\MATLAB\working\2013\201302\20130204\SH600000.CSV
D:\MATLAB\working\2013\201302\20130205\SH600000.CSV
D:\MATLAB\working\2013\201303\20130302\SH600000.CSV
D:\MATLAB\working\2013\201303\20130312\SH600000.CSV
D:\MATLAB\working\2013\201303\20130331\SH600000.CSV
D:\MATLAB\working\2013\201304\20130403\SH600000.CSV
D:\MATLAB\working\2013\201304\20130415\SH600000.CSV
D:\MATLAB\working\2013\201305\20130503\SH600000.CSV
D:\MATLAB\working\2013\201305\20130505\SH600000.CSV
D:\MATLAB\working\2013\201306\20130602\SH600000.CSV
D:\MATLAB\working\2013\201306\20130631\SH600000.CSV
实测能运行,非常好!但是,非常抱歉,由于初学matlab,能麻烦稍微逐行解释一下吗?例如,s含义,cd()用法,i为什么从3开始循环(每月日期随机),s2含义。非常感谢!