Pregunta

En mi archivo matlab m, estoy usando algo de lógica (cadena concat) para construir variables como esta:

c = 'CalcPrediction(1,10)'

Eso significa que tengo una cadena que es una función y algunos parámetros. ¿Cómo puedo hacer esa función llamada?

Probar ejecutar (c) da como resultado:

>> run(c)
??? Error using ==> run at 71
CalcPrediction(1,10) not found.

Nota: run (c) funciona bien si no hay parámetros. P.ej.     c = 'CalcPrediction';     ejecutar (c);

¿Fue útil?

Solución

El comando que está buscando es eval () en lugar de run()

Otros consejos

Sin ver realmente el script es difícil generalizar, pero ...

Donde squareRoot es un archivo-m que contiene solo: y = sqrt (x)

Luego ejecutando:

x=[2,0?;

c='squareRoot';

run(c );

da:

y =

1.4142 0

Este ejemplo es para decir que puede definir la secuencia de comandos para usar una variable declarada ( x en este caso) y luego declarar la variable antes de ejecutar la secuencia de comandos.

Sin el script, no sé qué estás haciendo con los parámetros. Si esto no responde a tu pregunta, publica tu guión.

Desea utilizar str2func . Esta función toma una cadena y devuelve un controlador de función que puede llamarse con sus parámetros. Echa un vistazo a los ejemplos en la página vinculada.

fh = str2func('CalcPrediction')
fh(1, 10)
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top