У меня есть функция, которая принимает переменное количество входных переменных. Проблема в том, что количество входных аргументов, которые я собираюсь предоставить, варьируется. Таким образом, я храню все аргументы в структуре:
function grandAvg(datafiles)
% Load up all averaged datafiles
avgs = struct();
for n=1:length(datafiles)
avgs(n).avg = load(datafiles{n});
end
У меня вопрос: есть ли способ расширить этот аргумент для функции? Мне нужен способ преобразовать это:
% DOES NOT WORK
avg = ft_timelockgrandaverage(cfg, avgs);
к этому:
% WOULD WORK, BUT DO NOT WANT TO TYPE IT OUT
avg = ft_timelockgrandaverage(cfg, avgs(1).avg, ..., avgs(n).avg);
РЕДАКТИРОВАТЬ ДОБАВИТЬ: Так что, очевидно, мой вопрос не был ясен. Я знаю, как построить функцию, используя varargin
. Мой вопрос был таков: если я пытаюсь использовать встроенную функцию, которую я не хочу или не могу изменить, как я могу предоставить аргументы переменным образом? Т.е. я заранее не знаю, сколько аргументов я предоставлю, поэтому, когда я вызываю функцию, мне придется вызывать ее с числом аргументов X. По сути, я ищу способ повернуть это:
someVar <1xN struct>
в это:
someVar1 <1x1 struct>
someVar2 <1x1 struct>
...
someVarN <1x1 struct>
программным способом. Спасибо!