Эта функция get_outputs
, описанная выше, может быть очень полезна для кратких анонимных функций. Очень мило.
Кроме того, что касается комментария о том, что в MATLAB нельзя использовать «если», это только частично верно. Идентичное поведение может быть легко реализовано анонимно. Например, вот аноним, если:
anonymous_if = @(varargin) varargin{2*find([varargin{1:2:end}], 1, 'first')}();
Использование:
out = anonymous_if(condition1, action1, condition2, action2, ...);
Выполняется действие, соответствующее первому истинному условию. Например, это печатает «привет».
anonymous_if(false, @() disp('hi'), ... % if false, print 'hi'
true, @() disp('hello')) % else if true, print 'hello'
Конечно, это немного сложно с первого взгляда, но я держу что-то подобное на своем пути, чтобы я мог использовать «если» в анонимной функции. Таким способом можно создать гораздо более сложные анонимные функции.