Поиск имен параметров из анонимной функции - PullRequest
0 голосов
/ 18 января 2019

Я хочу найти имена параметров анонимной функции в Matlab.

Я пытался проверить, есть ли какая-либо информация об именах параметров в команде functions (), но безрезультатно.

Скажем, у меня есть анонимная функция f:

f = @(x, y) x^2 + y^2

Мне нужно найти имена параметров «x» и «y» из этого уравнения. Есть ли встроенный метод в Matlab, который может это сделать? Или мне нужно как-то разобрать функцию, чтобы получить имена параметров?

1 Ответ

0 голосов
/ 19 января 2019

Поле function в выходных данных functions (или эквивалентно в выходных данных func2str) дает определение функции в виде строки. Затем вы используете регулярное выражение для сопоставления каждой последовательности одного или нескольких не ), не , символов, которые находятся между @( или , и , или ):

s = functions(f);
inputVarNames = regexp(s.function, '(?<=(,|@\())[^\)]+?(?=(,|\)))', 'match');
...