我正在穿越子目录,并在字符变量中获取每个文件的名称。
var1 = dir('*.txt');
%creating a loop with index i
var2 = var1.name(i); %Getting first file name
arr1 = ['C001','C002','C003','C010'];
arr2 = ['C011','C012','C013','C014'];
文件名是格式的" c001.txt"等。我想检查文件名 var2
是否属于 arr1
或 arr2
(更准确地说,是可变 var2
的一部分或没有扩展名的文件名(。我可以尝试使用contains()
,但它可以与字符串而不是字符搭配使用。做这项任务的好方法是什么?
上面的方法有一些错误...
-
行
var2 = var1.name(i);
将为您带来错误。dir
函数返回一个结构数组,如果您在数组上循环,则需要访问数组元素 first ,则是结构字段:var2 = var1(i).name;
-
name
字段将包含文件名 plus 扩展名。看起来您要在进行比较之前要删除扩展名,您可以使用fileparts
进行比较:[~, var2] = fileparts(var1(i).name);
-
存储多个字符数组时,您通常希望将它们存储在单元格数组中,因为这使它们更易于处理,并且大多数功能旨在无论如何都可以在字符阵列上操作:
arr1 = {'C001','C002','C003','C010'}; % Note the curly braces! arr2 = {'C011','C012','C013','C014'};
进行上述更改后,您可以使用(方便的(ismember
函数来轻松检查var2
是否是arr1
或arr2
的成员:
if ismember(var2, arr1)
% Do something
elseif ismember(var2, arr2)
% Do something else
end