批量读取指定类型的文件(以*.txt为例)
dirPath= 'C:\Users\ZHM\Desktop\801\final\*.txt';
fileList = dir(dirPath);
dir
列出文件夹内容
语法
dir
dir name
listing = dir(name)
说明
dir 列出当前文件夹中的文件和文件夹。dir name 列出与 name 匹配的文件和文件夹。如果 name 为文件夹,dir 列出该文件夹的内容。使用绝对或相对路径名称指定 name。name 参数的文件名可以包含 *
通配符,路径名称可以包含*
和 **
通配符。与 **
通配符相邻的字符必须为文件分隔符。
listing = dir(name)
返回 name 的属性赋值给listing。这个返回值是一个结构体;结构体的结构如下:
name
folder
date
bytes
isdir
datenum
字段 | 说明 | 类型 |
---|---|---|
name | 文件或文件夹名称 | char |
folder | 文件或者文件夹的位置 | char |
date | 修改日期时间戳 | char |
bytes | 文件大小(以字节为单位) | double |
isdir | 如果name为文件夹:1 为文件:0 | logical |
datenum | 修改日期是一个日期序列值 | double |
最主要的字段为:name和folder,其他几个考虑不到应用场景
可以使用.
调用任一结构体成员
如:
listing.name
利用通配符匹配以某个标识结尾或者开头的文件
这个和就是Windows下的通配符规则一模一样
示例:
*tag.txt
匹配以tag.txt结尾的文本文件
PS:(以下写法只是第一天接触matlab代码。实在缺少基础知识,后边看情况优化)
同样,我们需要借助dir函数
dirPath= 'C:\Users\ZHM\Desktop\801\final\*tag.txt';
fileList = dir(dirPath);
但是,一般的需求是:我们希望从多个文件夹下读取一系列以tag.txt结尾的文本文件,然后load
这个需要借助字符串拼接函数strcat
先指定路径:
srtmPath = 'C:\Users\ZHM-7540\Desktop\801\com_for_mat\final\srtm500_00_2020_08_09__21_02_32\';
demPath = 'C:\Users\ZHM-7540\Desktop\801\com_for_mat\final\DEM500_2020_08_09__21_00_30\';
指定需要匹配的文件名类型()
fileTypes = {'_*SLP.txt','_*len.txt','_*LS.txt'};
srtmFileName = strcat(fileDir(1),fileTypes(i));
srtmFileName = dir(cell2mat(srtmFileName));
srtmFileName = strcat(strcat(srtmFileName.folder,'\'),lists.name);
频率统计
作图
写的稍微乱了些,未完。。。。