Frage

In meiner Matlab m-Datei Ich verwende einige Logik (string concat) Variablen wie folgt zu erstellen:

c = 'CalcPrediction(1,10)'

Das bedeutet, dass ich eine Zeichenfolge, die eine Funktion und einige Parameter ist. Wie kann ich tun, um diese Funktion zu nennen?

Der Versuch, run (c) ergibt:

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

Hinweis: run (c) funktioniert gut, wenn es keine Parameter. Z.B.     c = 'CalcPrediction';     Lauf (c);

War es hilfreich?

Lösung

Der Befehl Sie suchen, ist eval() statt run()

Andere Tipps

Ohne das Skript tatsächlich nicht zu sehen, es ist schwer zu verallgemeinern, aber ...

Wo squareRoot eine m-Datei enthält nur: y=sqrt(x)

Dann ausführen:

x=[2,0];

c='squareRoot';

run(c);

gibt:

y =

1.4142 0

In diesem Beispiel ist zu sagen, dass Sie das Skript definieren können eine deklarierte Variable (x in diesem Fall) zu verwenden und dann die Variable deklarieren, bevor das Skript ausgeführt wird.

Ohne das Skript Ich weiß nicht, was Sie mit den Parametern tun. Wenn dies nicht Ihre Frage beantworten, post Ihr Skript.

Sie verwenden möchten str2func . Diese Funktion nimmt einen String und gibt eine Funktion Handler, die mit Ihren Parametern aufgerufen werden kann. Schauen Sie sich die Beispiele auf der verlinkten Seite.

fh = str2func('CalcPrediction')
fh(1, 10)
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top