Matlab 如何获取子文件夹或子子文件夹目录名与目录下文件名 及其文件名判断

您所在的位置:网站首页 文件夹一级目录二级目录怎么弄 Matlab 如何获取子文件夹或子子文件夹目录名与目录下文件名 及其文件名判断

Matlab 如何获取子文件夹或子子文件夹目录名与目录下文件名 及其文件名判断

2024-07-15 19:22| 来源: 网络整理| 查看: 265

来源

做实验,实验数据分了二级目录,及子子文件夹。数据放在子子文件夹内。想实现怎么在根目录数据分析,绘图,出图。还想初步分析数据,一次浏览所有实验的初步数据,比如设一个指标,对相同和不同类别实验数据进行浏览,选择出每种实验添加下的最好数据进行绘图。

根目录下获取一级分类目录

根目录下只有实验的一级分类目录,没有其他文件。 下面这段代码拷贝自 matlab answers 的问答题 Is there any way to list all folders ONLY in the level directly below a selected directory?

function [subDirsNames] = GetSubDirsFirstLevelOnly(parentDir) % Get a list of all files and folders in this folder. files = dir(parentDir); % Get a logical vector that tells which is a directory. dirFlags = [files.isdir]; % Extract only those that are directories. subDirs = files(dirFlags); % A structure with extra info. % Get only the folder names into a cell array. % subDirsNames = {subDirs(3:end).name}; % Get only the folder names into a structure array. subDirsNames = subDirs(3:end); end 获取二级目录子子文件夹名 当然可以用 cd切换工作目录在用一次上面获取子文件夹的方法,但是调试容易切换工作目录后程序终止,工作目录没有奇幻回去。直接获取滋滋文件夹代码如下: addpath(genpath('./')); % 把根目录下所有文件加入matlab path,matlab退出会自己删除,也可以在脚本末尾加上 rmpath(genpath('./')) 手动删除他们 parent_folder = GetSubDirsFirstLevelOnly(pwd); % 根目录下的一级目录文件夹名 for K = 1:length(parent_folder) folders = GetSubDirsFirstLevelOnly( parent_folder(K).name ); % 根目录下的二级子子文件夹名 for i = 1:length(folders) path = [folders(i).folder,'\',folders(i).name]; %构建path路径 listing = dir(path); % 获取路径下的文件列表 listing = listing(3:end); % 删除 前两个,根目录和返回上一级目录 listing = { listing(:).name }; %获取所有文件名 listing = string(listing); % 元胞数组转string TF = contains(listing, 'your_selected_file'); % 从文件名中找出需要的文件 % 数据处理过程,自定义 end end rmpath(genpath('./')) 从文件名称中提取信息

一般在实验数据存储的 mat 文件命名时,特意将实验条件缩写放在名字中,现在可以直接从名字中知道实验的条件了。

Exp_Name = split( folders(i).name, '_'); % 实验数据命名时有下换线分开实验条件 % Exp_Name( contains(Exp_Name, 'A') ); data(k).current = str2num( Exp_Name{ contains(Exp_Name, 'A') }(1:end-1) ); data(k).flowrate = str2num( Exp_Name{ contains(Exp_Name, 'L') }(1:end-1) ); data(k).coolant_temperature = str2num( Exp_Name{ contains(Exp_Name, 'deg') }(1:end-4) ); data(k).ExpResult= ExpResult;


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3