【MATLAB】文件路径操作

  • Post author:
  • Post category:其他




0 前期教程



1 前言

使用MATLAB进行数据分析时,首要的一般是读取文件,除了掌握常用的读写文件函数外(↑前期教程1),如果存在多个文件的情况,就会用到

文件路径操作

相关的函数。



2 遍历文件夹中的所有文件

当需要读取的数据文件都在一个文件夹中时,如何遍历文件夹下的所有文件,实现依次读取?最简单的方式是采用

dir

函数。其语法如下所示。

dir %列出当前文件夹中的文件和文件夹
dir dirname %列出dirname对应的路径下的文件和文件夹

需要注意的是,

dir

函数返回的数据形式为结构体数组(

struct

),且还包含当前文件夹和上一级文件夹,即

"."



".."

>> A = dir
A = 
  包含以下字段的 21×1 struct 数组:
    name
    folder
    date
    bytes
    isdir
    datenum
    
%% 如果要索引其中的某个文件,需要先索引,再取项
>> A(2).name %对应前面提到的上一级文件夹
ans =
    '..'

此外,需要注意的是,这里输入的文件夹路径参数(

dirname

)是

支持通配符

的(


主要是 * 和 ? 两个符号


),比如需要提取固定后缀的文件,可以传入

"xxxxx\*.txt"

这样的字符串,实现只读取txt后缀的文件。



3 文件路径合并

在读取多个数据文件时,会需要得到数据文件的绝对路径,而输入的往往是数据文件所在文件夹的路径,因此就需要用到文件路径合并的方法。



3.1 字符串合并

在MATLAB中,文件路径本质上是字符串,其数据类型为

char

,而在MATLAB中可以用

+

来连接字符串,因此可以

文件夹路径 + '\' + 文件名

来得到文件的绝对路径。



3.2 fullfile

当需要合并的内容较多时,需要的加号也就越多,同时还要输入分隔符

\

,比较麻烦,而使用

fullfile

函数就不需要考虑输入分隔符,同时还不需要考虑系统平台带来的分隔符不同的问题,更加简便。其语法如下所示。

f = fullfile(filepart1,...,filepartN)



4 路径拆分——fileparts

当已知某个文件的绝对路径时,想要获取该文件所在文件夹,就需要使用到路径拆分,同样,文件路径本质上就是字符串,因此可以用

sscanf

或者正则表达式等对字符串进行分隔,但是在MATLAB中提供了一个文件路径拆分的函数,即

fileparts

,其语法如下所示。

[filepath,name,ext] = fileparts(filename) 
%文件夹路径 文件名(不含后缀) 文件后缀



版权声明:本文为ZHOU_YONG915原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。