Имена функций и параметры в переменных Matlab

StackOverflow https://stackoverflow.com/questions/421873

  •  05-07-2019
  •  | 
  •  

Вопрос

В моем 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)
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top