
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
要处理的数据文件名:SH600000CSV
D:\MATLAB\working\2013\201301\20130102\SH600000CSV
D:\MATLAB\working\2013\201301\20130103\SH600000CSV
D:\MATLAB\working\2013\201301\20130104\SH600000CSV
D:\MATLAB\working\2013\201301\20130105\SH600000CSV
D:\MATLAB\working\2013\201301\20130122\SH600000CSV
D:\MATLAB\working\2013\201301\20130131\SH600000CSV
D:\MATLAB\working\2013\201302\20130203\SH600000CSV
D:\MATLAB\working\2013\201302\20130204\SH600000CSV
D:\MATLAB\working\2013\201302\20130205\SH600000CSV
D:\MATLAB\working\2013\201303\20130302\SH600000CSV
D:\MATLAB\working\2013\201303\20130312\SH600000CSV
D:\MATLAB\working\2013\201303\20130331\SH600000CSV
D:\MATLAB\working\2013\201304\20130403\SH600000CSV
D:\MATLAB\working\2013\201304\20130415\SH600000CSV
D:\MATLAB\working\2013\201305\20130503\SH600000CSV
D:\MATLAB\working\2013\201305\20130505\SH600000CSV
D:\MATLAB\working\2013\201306\20130602\SH600000CSV
D:\MATLAB\working\2013\201306\20130631\SH600000CSV
先用文件命令读取表格文件数据,然后再读表格。
Matlab使用dir函数获得指定文件夹下的所有子文件夹和文件,并存放在在一种为文件结构体数组中
file=dir('E:\new\txt');
得到的为结构体数组每个元素都是如下形式的结构体
name -- filename
date -- modification date
bytes -- number of bytes allocated to the file
isdir -- 1 if name is a directory and 0 if not
datenum -- modification date as a MATLAB serial date number
分别为文件名,修改日期,大小,是否为目录,Matlab特定的修改日期
可以提取出文件名以作读取和保存用
你读取表格是一个道理。
path='输入文件夹路径';
data1=[];
data2=[];
for n=1:9
name=fullfile(path,[num2str(n) 'txt']);
fid=fopen(name,'r');%打开文件
fgetl(fid);%跳过第一行
s=fscanf(fid,'%x',[2 inf])';%读取并将16进制转换为10进制整数
s=s/2^2412;%除以2的24次乘以12
data1=[data1 s(:,1)];%第一列合并到data1
data2=[data2 s(:,2)];%第一列合并到data2
fclose(fid);
end
xlswrite('输出路径文件夹文件名1',data1);%写data1
xlswrite('输出路径文件夹文件名2',data2);%写data2
每个文件的数据要一样长哦
需要准备的工具:Matlab软件,电脑。
1、首先找到需要提取文件名的文件夹,双击打开,查看文件。
2、右键单击从下拉菜单中选择新建命令,新建一个文本文件。
3、双击打开该文本文件,接着输入命令行dir /b>目录清单txt
4、右键单击该文件,从下拉菜单中选择重命名。
5、修改扩展名txt为bat,回车进行确定,d出提示信息继续确定即可。
6、双击运行该文件,这个时候会在统一目录下进来一个名称为目录清单的文本文件。
7、打开目录清单文件,查看效果,这个时候会发现该文件夹下的所有文件名称均被提取出来了。
可以分两步来做
第一步,将取2000个Excel文件中的每一个表的B12:BXY12区域,批量提取到一个excel表中;
第二步,使用matlab,读取提取后的数据。
这样效率应该会高些,您觉得如何
以上就是关于Matlab提取多个文件夹里同文件名csv文件全部的内容,包括:Matlab提取多个文件夹里同文件名csv文件、怎么在matlab中一次读取大量表格,表格名字没有规律,表格在一个文件夹下、Matlab批量读取一个文件夹里的txt文件并转换格式存储等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)