Я пытаюсь индексировать из ячейки множество потенциальных эталонных файлов, которые можно использовать для сравнения.В файлах сравнения есть отдельные части имен файлов, которые я хотел бы использовать для указания одного ссылочного файла.Однако я могу вернуть только справочные файлы, которые содержат три отдельные части, в любом порядке.Как применить порядок?
Пример:
Файл сравнения:
deg_baseFileName = "Test1_female_44k_70dBA_babble7ch_1sp_20k_00dBA_48k"
Я использую strsplit, чтобы разбить имя файла на части:
deg_parts = strsplit(deg_baseFileName, "_");
Отличительными частями являются:
deg_parts(2), deg_parts(4), deg_parts(8)
В этом случае: "мама", "70dBA", "00dBA" - в этом порядке.
Я использую эти функции для определенияи индекс с отличительными частями:
strToFind = {string(deg_parts(2)),string(deg_parts(4)),string(deg_parts(8))}'; % Strings to match
fun = @(s)~cellfun('isempty',strfind(ref_files,s));
out = cellfun(fun,strToFind,'UniformOutput',false);
idx = all(horzcat(out{:}),2);
Тем не менее, индекс возвращает два значения из моего массива ячеек справочного файла: Ref_female_44k_00dBA_babble7ch_1sp_20k_70dBA_48k.wav Ref_female_44k_70dBA_babble7ch_1sp_20k_00w20 * 1010второе в правильном порядке.
Можно ли как-то принудительно навести порядок в моем out
вызове?
Спасибо!