Nomes de funções e parâmetros em variáveis ??Matlab
Pergunta
Na minha MATLAB m-file Eu estou usando alguma lógica (concat string) para variáveis ??de compilação como este:
c = 'CalcPrediction(1,10)'
Isso significa que tenho uma cadeia que é uma função e alguns parâmetros. Como posso fazer isso chamada de função?
Tentando prazo (c) resulta em:
>> run(c)
??? Error using ==> run at 71
CalcPrediction(1,10) not found.
Nota: executar (c) funciona bem se não há parâmetros. Por exemplo. c = 'CalcPrediction'; run (c);
Solução
O comando que você está procurando é eval()
vez de run()
Outras dicas
Sem realmente vendo o script é difícil generalizar, mas ...
Onde squareRoot é um arquivo-m contendo apenas: y=sqrt(x)
Depois de executar:
x=[2,0];
c='squareRoot';
run(c);
dá:
y =
1.4142 0
Este exemplo é dizer que você pode definir o script para usar uma variável declarada (x
neste caso) e, em seguida, declarar a variável antes de executar o script.
Sem o script que eu não sei o que você está fazendo com os parâmetros. Se isso não responder à sua pergunta, poste seu script.
Você quer usar str2func . Esta função tem uma cadeia e retorna um manipulador de função que pode ser chamado com seus parâmetros. Confira os exemplos na página vinculada.
fh = str2func('CalcPrediction')
fh(1, 10)