Matlab提取多个文件夹里同文件名csv文件

Matlab提取多个文件夹里同文件名csv文件,第1张

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文件并转换格式存储等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/10173791.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-06
下一篇2023-05-06

发表评论

登录后才能评论

评论列表(0条)

    保存