Ця функція get_outputs
вище може бути дуже корисною для коротких анонімних функцій. Дуже хороша.
Крім того, щодо коментаря, що "if" не може бути використано в 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'
Звичайно, це трохи складніше на перший погляд, але я тримаю щось подібне на моєму шляху, так що я можу використовувати "якщо" в анонімній функції. У такий спосіб можна побудувати набагато складніші анонімні функції.