Если я правильно понимаю, основные проблемы в этой функции - правильно собрать имена файлов и передать функцию, которая должна быть вызвана, верно?Если вы передаете имя файла данных в виде строки, вы можете использовать sprintf для сборки имени файла, например:
dataSetName = 'AAA001';
dataFilename = sprintf('C:\path\to\datafolder\%s.mat', dataSetName);
Для функции вы можете передать дескриптор функции какпараметр вашей функции.Например, предположим, что вы определили функцию:
function c = apply_fun(fun, a, b)
c = fun(a, b);
end
Вы можете, например, max
или mean
как func, например:
>> apply_fun(@max, 1, 2)
ans =
2
>> apply_fun(@min, 1, 2)
ans =
1
То естьпередается ссылка на max
(с @max
), а затем она используется внутри функции apply_fun
, которую мы определили.
Более того, вам не нужно clear all
внутри функции, поскольку она ужеимеет другую область.
Надеюсь, это поможет вам!