在MATLAB中将文件名保存到数组中

时间:2011-08-17 04:14:55

标签: arrays string matlab loops

我有一组文件名。

Eg: name=apple_class=1A_regis=1.txt 
    name=apple_class=1A_regis=2.txt 
    name=pear_class=1A_regis=1.txt

我希望能够将具有相同'name = apple_class = 1A'的所有文件名保存到数组中。这会将前两个文件名保存到一个数组中。

我尝试过使用for循环但我仍然无法得到它,因为我不知道如何检查文件名。

请帮忙。谢谢!

2 个答案:

答案 0 :(得分:0)

使用strfind,在您查找的字符串中返回您要查找的子字符串的索引。如果结果不为空,则字符串存在。在这个例子中,我将索引与1进行比较,而不仅仅是检查它是否为空,以符合您的示例:

fileName = 'name=apple_class=1A_regis=1.txt';
k = strfind (fileName, 'name=apple_class=1A');
if k==1
   % do something
end

答案 1 :(得分:0)

@Itamar Katz回答的基础上,您可以将文件名保存在字符串的子区域中,应用STRFIND,然后找到匹配子字符串的文件名:

filenames = {
    'name=apple_class=1A_regis=1.txt'
    'name=apple_class=1A_regis=2.txt'
    'name=pear_class=1A_regis=1.txt'
};

idx = strfind(filenames, 'name=apple_class=1A');
idx = find(~cellfun(@isempty,idx));

匹配的文件名是:

>> result = filenames(idx)
result = 
    'name=apple_class=1A_regis=1.txt'
    'name=apple_class=1A_regis=2.txt'