Вы можете определить функции в командном окне Matlab. Он будет оцениваться как функция, но он не будет доступен вам в вашем следующем сеансе Matlab (хотя вы можете сохранить и загрузить его как переменную).
Например, я копирую функцию @ Dirk Eddelbuettel
>> cubed = @(x)x^3;
>> cubed(2)
ans =
8
РЕДАКТИРОВАТЬ 1
Обратите внимание, что вы можете определять только функции с одним оператором как анонимные функции в Matlab, поэтому вы не можете использовать, например, for-loop (если вы не используете зло eval
, которое разрешает все). Однако, если вы вкладываете анонимные функции, вы можете создавать произвольно сложные рекурсивные операторы. Таким образом, я предполагаю, что вы действительно можете определить любую функцию в окне командной строки. Это может просто не стоить усилий, и я держу пари, что это будет очень трудно понять.
EDIT 2 Вот пример рекурсивной вложенной анонимной функции для вычисления факториалов из Matlab central :
>> fact = @(val,branchFcns) val*branchFcns{(val <= 1)+1}(val-1,branchFcns);
>> returnOne = @(val,branchFcns) 1;
>> branchFcns = {fact returnOne};
>> fact(4,branchFcns)
ans =
24
>> fact(5,branchFcns)
ans =
120