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

È stato utile?

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)
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top