MATLAB遍历子文件夹及其下文件

MATLAB遍历子文件夹及其下文件

以前从未遇到过用MATLAB批处理文件的情况,此次项目需要批量将二进制数据文件导入matlab进行svm分类,现将matlab遍历子文件夹及其文件的方法记录下来。

文件目录结构/maindir|– subdir1|– datafile1.dat|– datafile2.dat|– subdir2|– datafiel3.dat|– datafiel4.dat|– subdir3|– datafile5.dat|– datafile6.dat

主文件夹maindir下含有三个子文件夹,子文件夹分别包含两个二进制数据文件

函数dir

可以使用函数dir,D = DIR(‘directory_name’)返回一个结构数组,包含了文件夹directory_name下的子文件夹和子文件的一些信息,第1个成员是文件名,第4个成员表示是否为文件夹。

要注意的是第1个数组元素和第2个数组元素分别是’.’和’..’,表示当前目录和上层目录。

代码实现maindir = ‘D:\MATLAB\project’;subdir = dir( maindir );for i = 1 : length( subdir )if( isequal( subdir( i ).name, ‘.’ )||…isequal( subdir( i ).name, ‘..’)||…~subdir( i ).isdir)% 如果不是目录则跳过continue;endsubdirpath = fullfile( maindir, subdir( i ).name, ‘*.dat’ );dat = dir( subdirpath )% 子文件夹下找后缀为dat的文件for j = 1 : length( dat )datpath = fullfile( maindir, subdir( i ).name, dat( j ).name);fid = fopen( datpath );% 此处添加你的对文件读写操作 %endend函数uigetdir

由于前面maindir需要指定路径,可能不是太方便。

使用uigetdir可以方便的通过对话框选择文件夹,返回值为文件夹路径名。代码如下:

maindir = uigetdir( ‘选择一个文件夹’ );

上面的例子比较简单,只涉及到两层目录以及指定格式的文件。

对于多层目录,以及多种格式文件的处理,则可以采用层次遍历与深度遍历两种方法实现。具体操作及例子见连接MATLAB对文件夹的层次遍历和深度遍历,,不再详细阐述。

效果只能是既费时又没有胜利,再聪慧的人也没法成学。

MATLAB遍历子文件夹及其下文件

相关文章:

你感兴趣的文章:

标签云: