所有子文件夹中图片个数matlab代码实现

转自   https://www.cnblogs.com/LiuSY/p/7148877.html



clc
clear all
close all

%% 查看子文件下有多少张图片

maindir='G:\CASIA-maxpy-clean';
subdir = dir( maindir ); % 先确定子文件夹
N=0;
lensubdir=length(subdir);
fprintf('一共有%d个子文件夹',lensubdir-2) ; %去除两个符号文件
for i = 1 : lensubdir
%从第三个开始
if( isequal( subdir( i ).name, '.' ) || ...
isequal( subdir( i ).name, '..' ) || ...
~subdir( i ).isdir ) % 如果不是目录跳过
continue;
end
fprintf('第%d个子文件夹\n',i);
subdirpath = fullfile( maindir, subdir( i ).name, '*.jpg' );
images = dir( subdirpath ); % 在这个子文件夹下找后缀为jpg的文件
N=N+length(images);
% % 遍历每张图片
% for j = 1 : length( images )
% imagepath = fullfile( maindir, subdir( i ).name, images( j ).name )
% % imgdata = imread( imagepath ); % 这里进行你的读取操作
% end
end
fprintf('共有%d个图片',N);

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 要使用MATLAB读取一个文件夹的所有文件夹,可以使用`dir`函数与递归的方法来实现。下面是一个简单的代码示例: ```matlab function folderList = getAllSubfolders(folderPath) % 获取文件夹的所有文件夹 folderList = {}; % 存储文件夹路径的空单元数组 % 获取当前文件夹的信息 folderInfo = dir(folderPath); for i = 1:length(folderInfo) fileInfo = folderInfo(i); % 跳过当前文件夹的'.'和'..'表示的文件夹 if strcmp(fileInfo.name, '.') || strcmp(fileInfo.name, '..') continue; end % 检查当前文件是不是文件夹 if fileInfo.isdir subFolderPath = fullfile(folderPath, fileInfo.name); % 将当前文件夹路径添加到文件夹列表 folderList = [folderList; subFolderPath]; %#ok<AGROW> % 递归调用该函数检查当前文件夹文件夹 subFolderList = getAllSubfolders(subFolderPath); % 将文件夹列表添加到总的文件夹列表 folderList = [folderList; subFolderList]; %#ok<AGROW> end end end ``` 在这个示例,我们首先定义了一个名为`getAllSubfolders`的函数,该函数接受一个文件夹路径作为输入参数,并返回一个包含所有文件夹路径的单元数组。函数的主要部分使用一个for循环遍历文件夹的所有文件和文件夹。对于每个文件夹,我们使用`fullfile`函数构建完整的文件夹路径,并将其添加到`folderList`。然后,使用递归的方式调用`getAllSubfolders`函数来检查当前文件夹文件夹,并将其返回的文件夹列表添加到总的文件夹列表。 要使用上述函数来读取文件夹的所有文件夹,您只需要在MATLAB调用`getAllSubfolders`函数并传递文件夹路径作为输入参数,如下所示: ```matlab folderPath = '您的文件夹路径'; subfolderList = getAllSubfolders(folderPath); ``` 这样,您就会得到一个名为`subfolderList`的单元数组,其包括所有文件夹的路径。 ### 回答2: 在MATLAB,要读取一个文件夹的所有文件夹,可以使用`dir`函数配合循环来实现。 首先,我们需要使用`dir`函数获取当前文件夹的所有文件和文件夹。例如,我们想读取名为`folder`的文件夹所有的文件夹,可以使用以下代码: ``` folderPath = 'folder'; % 文件夹路径 dirContents = dir(folderPath); % 获取文件夹的内容 % 循环遍历文件夹的所有内容 for i = 1:length(dirContents) % 判断是否为文件夹 if dirContents(i).isdir && ~strcmp(dirContents(i).name, '.') && ~strcmp(dirContents(i).name, '..') subFolderPath = fullfile(folderPath, dirContents(i).name); % 获取文件夹的路径 % 在这里可以对文件夹进行处理,比如读取文件、计算等 disp(subFolderPath); % 输出文件夹路径 end end ``` 上述代码的关键点是判断当前内容是否为文件夹,然后通过`fullfile`函数获取文件夹的完整路径。在循环,你可以根据具体需求,进一步处理文件夹的内容,如读取文件、处理数据等。 注意,上述代码的`dir`函数只读取当前文件夹的内容,并不会递归读取所有文件夹的内容。如果你需要递归读取所有文件夹,可以考虑使用递归函数或者自定义函数来实现。 ### 回答3: 在MATLAB,可以使用`dir`函数读取一个文件夹的所有文件夹。 首先,使用`dir`函数获取指定文件夹的信息,包括文件名和属性。例如,假设我们要读取名为"folder"的文件夹的所有文件夹,可以使用以下代码: ```matlab folder = 'folder'; % 指定文件夹名称 info = dir(folder); % 获取文件夹信息 ``` 接下来,使用`isdir`函数判断每个文件夹的属性是否为文件夹,从而确定它是否为文件夹。如果是文件夹,则获取其名称并进行相关操作。以下是实现代码示例: ```matlab for i = 1:length(info) if info(i).isdir && ~strcmp(info(i).name,'.') && ~strcmp(info(i).name,'..') % 判断是否为文件夹且不是当前文件夹或上级文件夹 subfolder = fullfile(folder, info(i).name); % 获取文件夹的完整路径 % 进行相关操作,例如读取文件夹的文件等 disp(subfolder); % 在命令窗口打印文件夹路径 end end ``` 在上述示例,`fullfile`函数用于获得文件夹的完整路径。`disp`函数用于在命令窗口打印文件夹路径,你可以根据自己的需求进行其他操作。 通过上述代码,你可以读取指定文件夹的所有文件夹,并对每个文件夹进行相关操作。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值