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);

Foi útil?

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)
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top