2011-08-17 90 views
0

我有一組文件名。在MATLAB中將文件名保存到數組中

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'的所有文件名保存到數組中。這會將前兩個文件名保存到一個數組中。

我已經嘗試使用循環,但我仍然無法得到這個,因爲我不知道如何檢查文件名。

請幫忙。謝謝!

回答

0

使用strfind,它返回您正在查找的字符串中您要查找的子字符串的索引。如果結果不爲空,則字符串存在。在這個例子中,我的指數比較1,而不只是檢查,如果它不是空的,符合你的例子:

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

大廈@Itamar Katz答案,你會保存文件名中的字符串的cellarray,適用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' 
相關問題