百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 热门文章 > 正文

MATLAB实现自动批量加载文件夹下的同类型所有文件

bigegpt 2024-10-06 02:45 4 浏览

当我们加载数据要进行处理的时候,可能会要批量处理同类型数据文件。如果数据文件名不具有规律性的话,不方便设置规律加载,此时我们可以编程实现自动加载文件夹下的同类型所有文件,例如批量加载指定路径的文件夹下的所有xxx.txt、xxx.xlsx、xxx.jpg、xxx.png等等文件。


实例1 加载xxx.txt文件

E:\matlab\bin\work\研究生\微信公众号\20220425的文件夹下有三个txt数据文件。文件名没有什么规律,里面随便写了数据。主要通过程序实现自动加载文件并进行处理和输出结果。


clc;
clear all;
close all;
%一次性读取文件
path ='E:\matlab\bin\work\研究生\微信公众号\20220425';%自行确定文件路径
data_list=dir(strcat(path,'\*.txt'));%识别数据文件(txt)信息
%注:如果是excel文件的话,上述的\*.txt需要改为xlsx,
%文件的路径可以直接粘贴复制得到,但要注意matlab的语法格式,如“”和‘’的区别:
%确定文件数目;
k = length(data_list);
for j=1:k%(自行确定文件总数目)
    data_name = data_list(j).name;%获取数据文件命名
    a{j,1}=importdata(data_name); %读取数据
    %元胞数组是一种包含名为元胞的索引数据容器的数据类型
    %其中的每个元胞都可以包含任意类型的数据。
    %元胞数组通常包含文本列表、文本和数字的组合或者不同大小的数值数组。
    %通过将索引括在圆括号 () 中可以引用元胞集。使用花括号 {} 进行索引来访问元胞的内容。
end
a{1,1}
a{2,1}
a{3,1}
figure;
plot(a{1,1}(1,:),a{1,1}(2,:),'r-');
xlabel('x');
figure;
plot3(a{2,1}(1,:),a{2,1}(2,:),a{2,1}(3,:),'b-');
xlabel('x');
ylabel('y');
zlabel('z');
%输出
for i = 1:k
    xlswrite(strcat("数据",strcat(num2str(i),".xlsx")),a{i,1});
end

运行结果

同时生成了数据文件数据1.xlsx 、数据2.xlsx和数据3.xlsx


实例2 加载xxx.xlsx文件

利用上个实例生成的三个excel数据文件,编程实现批量加载文件夹里面的指定类型文件。

clc;
clear all;
close all;
%一次性读取文件
file_path ='E:\matlab\bin\work\研究生\微信公众号\20220425';%自行确定文件路径
data_list=dir(strcat(file_path,'\*.xlsx'));%识别数据文件(txt)信息
%注:如果是excel文件的话,上述的\*.txt需要改为xlsx,
%文件的路径可以直接粘贴复制得到,但要注意matlab的语法格式,如“”和‘’的区别:
%确定文件数目;
k = length(data_list);
for j=1:k%(自行确定文件总数目)
    data_name = data_list(j).name;%获取数据文件命名
    a{j,1}=xlsread(data_name); %读取数据
    %元胞数组是一种包含名为元胞的索引数据容器的数据类型
    %其中的每个元胞都可以包含任意类型的数据。
    %元胞数组通常包含文本列表、文本和数字的组合或者不同大小的数值数组。
    %通过将索引括在圆括号 () 中可以引用元胞集。使用花括号 {} 进行索引来访问元胞的内容。
end
a{1,1}
a{2,1}
a{3,1}
%输出
for i = 1:k
    xlswrite(strcat("输出数据",strcat(num2str(i),".xlsx")),a{i,1});
end

运行结果

生成三个输出数据1,2,3的excel文件


3.涉及的函数知识

3.1 strcat函数

水平串联字符串

语法
s=strcat(s1,...,sN)
说明
s=strcat(s1,...,sN) 水平串联其输入参数中的文本。每个输入参数都可以是字符数组、字符向量元胞数组或字符串数组。
如果任一输入是字符串数组,则结果是字符串数组。
如果任一输入是元胞数组,并且没有输入是字符串数组,则结果是字符向量元胞数组。
如果所有输入都是字符数组,则结果是字符数组。
对于字符数组输入,strcat 会删除尾部的 ASCII 空白字符:空格、制表符、垂直制表符、换行符、回车和换页符。对于元胞数组和字符串数组输入,strcat 不删除尾部空白。
%创建两个字符向量。使用 strcat 水平串联两个向量。
s1 = 'Good';
s2 = 'morning';
s = strcat(s1,s2)
s = 
'Goodmorning'


%创建两个字符向量元胞数组。使用 strcat 水平串联两个元胞数组的元素
s1 = {'abcde','fghi'};
s2 = {'jkl','mn'};
s = strcat(s1,s2)
s = 1x2 cell
    {'abcdejkl'}    {'fghimn'}
%串联两个字符串数组
str1 = ["John ","Mary "];
str2 = ["Smith","Jones"];
str = strcat(str1,str2)

3.2 dir函数

列出文件夹内容

语法
dir
dir name
listing=dir(name)
说明
dir 列出当前文件夹中的文件和文件夹。
dir name 列出与 name 匹配的文件和文件夹。如果 name 为文件夹,dir 列出该文件夹的内容。
使用绝对或相对路径名称指定 name。name 参数的文件名可以包含 * 通配符,路径名称可以包含
  * 和 ** 通配符。与 ** 通配符相邻的字符必须为文件分隔符。
listing = dir(name) 返回 name 的属性。
%列出文件夹的内容。
%创建文件夹 myfolder,其中包含文件 myfile1.m、myfile2.m 和 myfile3.m。
mkdir myfolder
movefile myfile1.m myfolder
movefile myfile2.m myfolder
movefile myfile3.txt myfolder
%列出 myfolder 中符合条件的文件。
cd myfolder
dir *my*.m
%列出当前文件夹中和当前文件夹的所有子文件夹中的所有文件。
%创建文件夹 myfolder1,其中包含以下文件和文件夹:
mkdir myfolder1
mkdir myfolder1/myfolder2
mkdir myfolder1/myfolder2/myfolder3


movefile myfile1.m myfolder1
movefile myfile2.m myfolder1/myfolder2
movefile myfile3.m myfolder1/myfolder2/myfolder3
%列出 myfolder1 中和 myfolder1 的子文件夹中扩展名为 .m 的所有文件。
cd myfolder1
dir **/*.m
Files Found in Current Folder:
myfile1.m  
Files Found in: myfolder2
myfile2.m  
Files Found in: myfolder2/myfolder3
myfile3.m
%在返回结构体中查找信息
%将 myfolder 的文件夹列表返回给变量 MyFolderInfo。
%创建文件夹 myfolder,其中包含文件 myfile1.m、myfile2.m 和 myfile3.m。
mkdir myfolder
movefile myfile1.m myfolder
movefile myfile2.m myfolder
movefile myfile3.m myfolder
%获取 myfolder 中文件的列表。MATLAB 以结构体数组形式返回信息。
MyFolderInfo = dir('myfolder')
MyFolderInfo = 5x1 struct array with fields:
    name
    folder
    date
    bytes
    isdir
    datenum
创建结构体索引以访问特定项目。


MyFolderInfo(3).name

要搜索多个文件,请在文件名中使用通配符。例如,dir *.txt 将列出当前文件夹中扩展名为 txt 的所有文件。要以递归方式搜索路径上的文件夹和子文件夹,请在路径名称中使用通配符。例如,dir */*.txt 列出正好是当前文件夹的下一级文件夹中扩展名为 txt 的所有文件,dir **/*.txt 列出当前文件夹下或其下多个文件夹中扩展名为 txt 的所有文件。与 ** 通配符相邻的字符必须为文件分隔符。

输出参数

字段名称

说明

name

文件或文件夹名称

char

folder

文件或文件夹的位置

char

date

修改日期时间戳

char

bytes

文件大小(以字节为单位)

double

isdir

如果名称为文件夹,则为 1;如果名称为文件,则为 0

logical

datenum

修改日期是一个日期序列值。

double


本文内容来源于网络,仅供参考学习,如内容、图片有任何版权问题,请联系处理,24小时内删除。


作 者 | 郭志龙
编 辑 | 郭志龙
校 对 | 郭志龙

相关推荐

5分钟调色大片的方法(5分钟调色大片的方法有哪些)

哈喽大家好。在大家印象中一定觉得ps非常难学非常难。大家不要着急,小编的教学都是针对ps零基础的同学的,而且非常实用哦。只要大家跟着图文练习一两遍,保证大家立马学会~!好了,废话少说,下面开始我们今天...

闪白特效原来是这么用的(闪白特效怎么使用)

作者|高艳侠订阅|010-86092062闪白特效是影视作品中应用比较多的效果之一,那么具体该在哪些场景使用闪白特效?具体该如何操作?下面就以AdobePremiere(以下简称PR)为例,...

ppt常用小图标去哪里找?3个矢量素材网站推荐!

ppt是一个注重可视化表达的演示载体,除了高清图片,ppt中另一类常用的素材是各种小图标,也叫矢量图标,巧妙运用小图标能提升整体美观度和表现力,那么ppt常用小图标去哪里找呢?为方便各位快速找到合适的...

有什么好用的截图录屏工具?试试这9款

经常有朋友反馈苦于缺乏截屏和录屏的趁手工具,本期我们分享几个相当好用的截屏和录屏工具,希望能帮到大家。ScreenToGifScreenToGif是一款免费且开源的录屏工具。此款工具最大的特点是可以...

配色苦手福音!专业快速色环配色PS插件

今天橘子老师给的大家介绍的是一款快速配色的插件,非常强大配色苦手福音来啦!(获取方式见文末)【插件介绍】配色在后期设计中占有主导地位,好的配色能让作品更加抢眼Coolorus这款专业的配色插件,能够...

如何用PS抠主体?(ps怎么抠主体)

1.主体法抠图-抠花苞和花梗导入一张荷花苞的照片,点击上图中顶部“选择”菜单栏,下拉单击“主体”。可以看到,只有花苞被选中,但是花梗并没有被选中。接下来单击上图中左侧工具栏的“快速选择工具”,上图中顶...

2799元的4K电视,有保障吗?(买4k电视机哪个品牌好)

在上一期《电脑报》的3·15专题报道中,我们揭露了一款不靠谱的42英寸4K智能电视——TCLD42A561U。这款售价2699元的4K智能电视不仅4K画质方面存在严重问题,而且各种功能和应用体验也不理...

苹果电脑的Touch Bar推出一段时间了 这款工具可以帮你开发适用于它的APP

距离苹果推出带有TouchBar的MacBookPro已经有一段时间了,除了那些像Adobe、Google和Microsoft大公司在开发适用于TouchBar的应用之外,其实还有很多独立的开...

如魔法般吸取颜色的桌灯(如魔法般吸取颜色的桌灯叫什么)

色彩为生活带来的感官刺激,逐渐被视为理所当然。一盏桌灯运用它的神奇力量,将隐藏于物件中的颜色逐一释放,成为装点环境的空间魔法师。ColorUp是一款可以改变颜色的吸色台灯,沿用传统灯泡的造型,融入了拾...

一篇文章带你用jquery mobile设计颜色拾取器

【一、项目背景】现实生活中,我们经常会遇到配色的问题,这个时候去百度一下RGB表。而RGB表只提供相对于的颜色的RGB值而没有可以验证的模块。我们可以通过jquerymobile去设计颜色的拾取器...

ps拾色器快捷键是什么?(ps2019拾色器快捷键)

ps拾色器快捷键是什么?文章末尾有获取方式,按照以下步骤就能自动获得!学会制作PS特效需要一定程度的耐心和毅力。初学者可以从基本的工具和技术开始学习,逐渐提高他们的技能水平。同时,观看更多优秀的特效作...

免费开源的 Windows 截图录屏工具,支持 OCR 识别和滚动截图等

功能很强大、安装很小巧的免费截图、录屏工具,提供很多使用的工具来帮我么能解决问题,推荐给大家。关于ShareXShareX是一款免费的windows工具,起初是一个小巧的截图工具,经过多年的迭...

入门到精通系列PS教程:第13篇 · 拾色器、颜色问题说明及补充

入门到精通系列PS教程:第13篇·拾色器、颜色问题说明及补充作者|侯潇问题说明我的第12篇教程里,有个小问题没有说清楚。要说是错误,又不算是错误,只是没有说准确。写完那篇教程后,因为已经到了深...

PS冷知识:用吸管工具吸取屏幕上的任意颜色

今天,我们给大家介绍PS中的一个冷知识:用吸管工具可以吸取屏幕上的任意颜色。其实,操作起来是非常简单的。大多数情况下,我们认为,PS的吸管工具只能吸取PS软件作图区域范围内的颜色,最多加上画布四周的...

Windows 11 将提供内置颜色选择器工具

Windows11内置了颜色选择器,可以扫描并识别屏幕上的颜色并生成颜色代码。此外,微软还利用人工智能技术,让屏幕上的文本扫描和选择变得更加便捷。这两项功能均已在SnippingToolv1...