如何在matlab中跳过多个子文件夹中的某些特定文件?

问题描述 投票:-2回答:1

我需要跳过不同子文件夹中的一些特定文件。所以我在代码片段中尝试了行“if filename”,如果文件名不包含raw,info,请执行一些操作,但它不起作用。我真的很感激,如果有人能指出我正确的方向,我怎么能跳过这些具有特定字符的文件名,如“raw”或“info”。

input_dirName = dir('D:\Neda\Pytorch\CAMUS\training\');
Output_dirName = 'D:\Neda\Pytorch\CAMUS\data\';
GT_dirName =  'D:\Neda\Pytorch\CAMUS\GT\';

dirName = 'D:\Neda\Pytorch\CAMUS\training\';
fileList = SureScan_getAllFiles(dirName);


foldername = fullfile({input_dirName.folder}, {input_dirName.name});
foldername = foldername(3:end);


for k = 1:length(fileList)-50

filename = fileList{k};

if filename ~= contains(filename,'raw') | filename ~= contains(filename,'Info_') | filename ~= contains(filename,'sequence.mhd')| filename ~=contains(filename,'_sequence')    

% do some operation
end
end
matlab file skip dirname
1个回答
1
投票

contains的输出是truefalse,因此它永远不会等于任何文件名。

要跳过包含'raw''Info_''sequence.mhd''_sequence'中任何一个的文件名,请使用:

if ~contains(filename, {'raw', 'Info_', 'sequence.mhd', '_sequence'})    
   %do some operation
end
© www.soinside.com 2019 - 2024. All rights reserved.