【Matlab】加载路径下所有指定文件

加载路径下指定文件

想用matlab加载路径下所有指定文件,比如加载一个路径下的所有png图像、txt文件等,网上查了一圈也不是很好用,解决了问题就分享一下。

dir函数

用到了dir函数,Matlab中的dir函数是可以列出指定文件夹中的所有文件和子文件夹`,白话说就是检索指定文件,把文件名、文件路径等信息存储在结构体内。

举个例子,我想检索path路径下所有png文件,代码如下:

复制代码
listfile=dir(fullfile(path,'**\*.png'));

其中,fullfile 作用是文字拼接,**\*,两星是包含所有子文件夹,\星表示任意文件名。

还可以这么玩,检索刘诗诗为前缀的图像,示例如下:

复制代码
listfile=dir(fullfile(path,'**\刘诗诗*.png'));

结构体属性

listfile返回的是一个结构体,实用的属性就是name(文件名)和folder(文件路径),结构体属性示例如下:

复制代码
listfile=dir(fullfile(path,'**\*.png'));
Folfer_File = {listfile.folder};%提取文件路径放进cell里
Name_File = {listfile.name};%提取文件名放进cell里
Num_File = numel({listfile.name});%统计文件个数

listfile.folder表示的就是listfile结构体的文件路径

{listfile.folder}表示将提取文件路径放进cell里方便后面调用

图像加载

提取到的img就是路径下的用imread函数加载的第一张图像,其他的txt文件、excel文件、raw等用别的方式加载

复制代码
listfile=dir(fullfile(path,'**\*.png'));
Folfer_File = {listfile.folder};%提取文件路径放进cell里
Name_File = {listfile.name};%提取文件名放进cell里
Num_File = numel({listfile.name});%统计文件个数
img = imread(fullfile(Folfer_File{1},Name_File{1}))

循环加载

文件也可以用循环加载,循环次数就是文件个数Num_File

复制代码
listfile=dir(fullfile(path,'**\*.png'));
Folfer_File = {listfile.folder};%提取文件路径放进cell里
Name_File = {listfile.name};%提取文件名放进cell里
Num_File = numel({listfile.name});%统计文件个数

for j=1:Num_File
img(:,:,j) = imread(fullfile(Folfer_File{j},Name_File{j}))
end

我的个人博客主页,欢迎访问

我的CSDN主页,欢迎访问

我的GitHub主页,欢迎访问

我的知乎主页,欢迎访问

相关推荐
山甫aa6 分钟前
锁一篇搞定:乐观锁、悲观锁、CAS、数据库锁与分布式锁【从零开始的 Web 后端学习】
java·数据库·分布式·后端·学习·web
Nturmoils11 小时前
集中式与分布式怎么选:从订单读写看 KingbaseES 的架构边界
数据库
xiaomuzuirenzhen12 小时前
大专电子商务从事电商运营分析师需要考证吗?
大数据·数据库
翔云12345614 小时前
RocksDB中,客户端每写入一次数据,需要访问几次磁盘
运维·数据库·mysql
DevOpenClub14 小时前
职教高考控制线 API:招生类别枚举、筛选与空分数含义
java·数据库·高考
GeW15 小时前
新质生产力路线图解读:数据库性能优化与Linux调优专场
linux·数据库
在多学一点17 小时前
MYSQL第二次作业
android·数据库·mysql
Risehuxyc17 小时前
Microsoft.Data.Sqlite体验
数据库·sqlite
骑着蜗牛撵大象32717 小时前
MySQL 8.0 迁移后 SQL 变慢:执行计划里 3 类被忽略的成本差异
android·数据库·sql·mysql·优化器·执行计划
ZENERGY-众壹19 小时前
告警风暴怎么压?100MW 电站监控平台告警引擎架构复盘
数据库·架构·iot·电站监控