Nombres de funciones y parámetros en variables matlab
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);
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)