Nomi e parametri delle funzioni nelle variabili matlab
Domanda
Nel mio m-file matlab sto usando un po 'di logica (string concat) per costruire variabili come questa:
c = 'CalcPrediction(1,10)'
Ciò significa che ho una stringa che è una funzione e alcuni parametri. Come posso fare quella chiamata di funzione?
La prova di esecuzione (c) comporta:
>> run(c)
??? Error using ==> run at 71
CalcPrediction(1,10) not found.
Nota: run (c) funziona bene se non ci sono parametri. Per esempio. c = 'CalcPrediction'; run (c);
Soluzione
Il comando che stai cercando è eval ()
invece di run()
Altri suggerimenti
Senza effettivamente vedere la sceneggiatura è difficile generalizzare, ma ...
Dove squareRoot è un file m contenente solo: y = sqrt (x)
Quindi eseguendo:
x = [2,0];
c = 'squareRoot';
run (c);
dà:
y =
1.4142 0
Questo esempio indica che è possibile definire lo script per utilizzare una variabile dichiarata ( x
in questo caso) e quindi dichiarare la variabile prima di eseguire lo script.
Senza lo script non so cosa stai facendo con i parametri. Se questo non risponde alla tua domanda, pubblica la tua sceneggiatura.
Si desidera utilizzare str2func . Questa funzione accetta una stringa e restituisce un gestore di funzione che può essere chiamato con i parametri. Guarda gli esempi sulla pagina collegata.
fh = str2func('CalcPrediction')
fh(1, 10)