Question

Dans mon matlab m-file, j'utilise une logique (concat string) pour construire des variables comme celle-ci:

c = 'CalcPrediction(1,10)'

Cela signifie que j'ai une chaîne qui est une fonction et certains paramètres. Comment puis-je faire cet appel de fonction?

Essayer d’exécuter (c) entraîne:

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

Remarque: run (c) fonctionne bien s'il n'y a pas de paramètre. Par exemple.     c = 'CalcPrediction';     courir (c);

Était-ce utile?

La solution

La commande que vous recherchez est eval () au lieu de run ()

Autres conseils

Sans voir le script, il est difficile de généraliser, mais ...

Où squareRoot est un fichier m contenant uniquement: y = sqrt (x)

Puis exécution:

x = [2,0];

c = 'squareRoot';

run (c);

donne:

y =

1.4142 0

Cet exemple signifie que vous pouvez définir le script pour utiliser une variable déclarée ( x dans ce cas), puis déclarer la variable avant d'exécuter le script.

Sans le script, je ne sais pas ce que vous faites avec les paramètres. Si cela ne répond pas à votre question, postez votre script.

Vous souhaitez utiliser str2func . Cette fonction prend une chaîne et retourne un gestionnaire de fonctions pouvant être appelé avec vos paramètres. Découvrez les exemples sur la page liée.

fh = str2func('CalcPrediction')
fh(1, 10)
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top