【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主页,欢迎访问

我的知乎主页,欢迎访问

相关推荐
Elastic 中国社区官方博客42 分钟前
搜索倍增器:推动收入、生产力和 AI 实现规模化
大数据·数据库·人工智能·elasticsearch·搜索引擎·ai·全文检索
保定公民3 小时前
达梦数据库存储过程中的数组类型详解:基础数组与记录数组的差异化应用
数据库·达梦·存储过程·达梦数据库·dm8·dm
梦Arrebol3 小时前
Redis 内容及相关实验
数据库·redis
大模型码小白4 小时前
Spring AI Tool 实现自然语言操作 MySQL 数据库详解
服务器·开发语言·数据库·人工智能·python·mysql·spring
matlab代码4 小时前
基于matlab的玉米种子计数设计(GUI界面)【源码58期】
开发语言·matlab
DBA大董5 小时前
TDengine3.0 DBA常用的运维命令和SQL2
运维·数据库·时序数据库·dba·tdengine
ManageEngineITSM6 小时前
什么是CMDB?配置管理数据库的定义、作用与建设方法一文讲清
大数据·数据库·人工智能·资产管理·变更管理
IvorySQL6 小时前
PostgreSQL 日报|PG19 外键快速路径隐患已修复(8 月 23 日)
数据库·postgresql
Elastic 中国社区官方博客6 小时前
OpenTelemetry Java 扩展:无需分叉 agent 即可自定义追踪
java·大数据·运维·开发语言·数据库·人工智能·elasticsearch