gpt4 book ai didi

matlab - 如何检查文件夹是否在搜索路径上

转载 作者:行者123 更新时间:2023-12-04 13:49:39 25 4
gpt4 key购买 nike

我在外部驱动器上有一个文件夹,其中有 50 多个文件夹,每个文件夹有 2000 多个文件。 50 个文件夹中的每一个都没有子文件夹。我想在 MATLAB 搜索路径上添加所有文件,因此我执行了 addpath(genpath(...))。大约需要 5 分钟。如果文件夹在搜索路径上,我不想再次重复该操作。我如何确定?

我知道我可以使用 which 测试文件是否在搜索路径上,但我想查看主文件夹(有 50 个子文件夹)和子文件夹是否在搜索路径上。我该怎么做?

我什至尝试过使用 exist 命令,但即使文件夹不在搜索路径上,它也会给我非零值。

最佳答案

单目录搜索案例

%%// path_to_be_searched is the folder or directory to be detected 
%%// to be in path or not

%%// colon is the separator used for paths under Linux.
%%// For Windows and others, it needs to be investigated.
path_list_cell = regexp(path,pathsep,'Split')

if any(ismember(path_to_be_searched,path_list_cell))
disp('Yes, this directory is in MATLAB path');
else
disp('No, this directory is not in MATLAB path');
end

主目录和子目录搜索案例加上选项

对于基本路径和子目录搜索,以下代码将尝试为每个子目录和基本路径找到匹配项,并添加缺失的部分。因此,即使您有选择地从路径中删除了任何子目录甚至基本路径,此代码也会负责添加路径中缺少的所有内容。

%%// basepath1 is the path to the main directory with sub-directories that
%%// are to detected for presence

basepath_to_be_searched = genpath(basepath1)
basepath_list_cell = regexp(basepath_to_be_searched,pathsep,'Split')

%%// Remove empty cells
basepath_list_cell = basepath_list_cell(~cellfun(@isempty,basepath_list_cell))

path_list_cell = regexp(path,pathsep,'Split');

ind1 = ismember(basepath_list_cell,path_list_cell)

%%// Add the missing paths
addpath(strjoin(strcat(basepath_list_cell(~ind1),pathsep),''))

%%// strjoin is a recent MATLAB addition and is also available on file-exchange -
%%// http://www.mathworks.in/matlabcentral/fileexchange/31862-strjoin

关于matlab - 如何检查文件夹是否在搜索路径上,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23524708/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com