В MATLAB есть концепция, называемая "список входных аргументов переменной длины", см. varargin
. Это может быть использовано в анонимных функциях в целом и, в частности, в вашем примере:
foo = @(varargin) sum(cell2mat(varargin)) + 12;
foo(10) % 10 + 12
foo(10, 20) % 10 + 20 + 12
foo(10, 20, 30) % 10 + 20 + 30 + 12
ans = 22
ans = 42
ans = 72
varargin
- это массив ячеек, поэтому нам нужно преобразовать его в обычный (цифра c) массив. Тогда нам просто нужно сложить эти значения и добавить 12.
Конечно, это решение работает, только если все переданные аргументы имеют некоторый тип чисел c.
Надеюсь, это поможет!