MATLAB Answers

Search folders/paths with strfind: how to do excluding search?

34 views (last 30 days)
Felix
Felix on 25 Oct 2012
With the code below (adapted from an old question here) I create a list of all folders and subfolders within a give path (using the command genpath and strtok). Using strfind I then select only those folders that contain a given keyword. However, strfind only allows inclusive search, but how can I make e.g. condition 3 such that it only selects the paths that DONT contain the keyword?
listOfFolderNames = {};
allfolders=genpath('D:\test\');
while true
[singleSubFolder, allfolders] = strtok(allfolders, ';');
if isempty(singleSubFolder), break; end
listOfFolderNames = [listOfFolderNames singleSubFolder];
end
indices=strfind(listOfFolderNames,'word a); % <-- filter condition 1
Index = find(not(cellfun('isempty', indices)));
foldersa=listOfFolderNames(Index);
indices2=strfind(foldersa,'word b'); % <-- filter condition 2
Index2 = find(not(cellfun('isempty', indices2)));
foldersb=foldersa(Index2);
indices3=strfind(foldersb,'word c'); % <-- filter condition 3. How to make this eclusive??
Index3 = find(not(cellfun('isempty', indices3)));
foldersfinal=foldersb(Index3);

  0 Comments

Sign in to comment.

Accepted Answer

Matt Fig
Matt Fig on 25 Oct 2012
You could just leave out the call to NOT in Index3.

More Answers (0)

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!