matlab一个文件夹里面包含多个文件夹,读取所有文件夹内的图像路径生成list

该博客介绍了如何使用MATLAB从指定文件夹及其所有子文件夹中读取图像文件的路径。通过genpath函数获取文件夹路径,然后遍历每个路径以查找所有.jpg图像,将其路径写入到txt文件中。
摘要由CSDN通过智能技术生成


pathout = 'F:\文本分割\norm_image\list.txt';
fp = fopen(pathout,'wt')


p = genpath('F:\文本分割\norm_image');% 获得文件夹data下所有子文件的路径,这些路径存在字符串p中,以';'分割
length_p = size(p,2);%字符串p的长度
path = {};%建立一个单元数组,数组的每个单元中包含一个目录
temp = [];
for i = 1:length_p %寻找分割符';',一旦找到,则将路径temp写入path数组中
    if p(i) ~= ';'
        temp = [temp p(i)];
    else 
        temp = [temp '\']; %在路径的最后加入 '\'
        path = [path ; temp];
        temp = [];
    end
end  
clear p length_p temp;
%至此获得data文件夹及其所有子文件夹(及子文件夹的子文件夹)的路径,存于数组path中。
%下面是逐一文件夹中读取图像
file_num = size(path,1);% 子文件夹的个数
for i = 1:file_num
    file_path =  path{i}; % 图像文件夹路径
    img_path_list
### 回答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、付费专栏及课程。

余额充值