Имена функций и параметры в переменных Matlab
Вопрос
В моем m-файле Matlab я использую некоторую логику (конкат строк) для создания таких переменных:
c = 'CalcPrediction(1,10)'
Это означает, что у меня есть строка, которая является функцией и некоторыми параметрами.Как я могу выполнить вызов этой функции?
Попытка run(c) приводит к:
>> run(c)
??? Error using ==> run at 71
CalcPrediction(1,10) not found.
Примечание:run(c) работает нормально, если нет параметров.Например.c = 'CalcPrediction';запустить (с);
Решение
Команда, которую вы ищете, это eval ()
вместо run ()
Другие советы
Не видя сценария, трудно делать обобщения, но...
Где SquareRoot — это m-файл, содержащий только:y=sqrt(x)
Затем выполнение:
x=[2,0];
c='squareRoot';
run(c);
дает:
y =
1.4142 0
В этом примере вы можете определить скрипт для использования объявленной переменной (x
в данном случае), а затем объявите переменную перед запуском сценария.
Без скрипта я не знаю, что вы делаете с параметрами.Если это не ответ на ваш вопрос, опубликуйте свой сценарий.
Вы хотите использовать str2func . Эта функция принимает строку и возвращает обработчик функции, который может быть вызван с вашими параметрами. Ознакомьтесь с примерами на связанной странице.
fh = str2func('CalcPrediction')
fh(1, 10)