2011-10-31 1 views
0

J'ai une fonction matlab et j'ai été capable de l'exécuter à partir de la ligne de commande. Maintenant, je veux passer un paramètre au fichier à partir de la ligne de commande. Le paramètre est un nombre entier. Il semble que quand je passe de la ligne de commande, il est toujours pris comme un "char".Exécuter matlab et passer le paramètre entier à partir de la ligne de commande

Voici comment je lance la commande

Matlab -nodesktop -nosplash -r "mycommand 3"

Par exemple, si j'ai une fonction

function [ ] = mycommand(a) 
a = a+3; 
disp(a) 
end 

il imprime 54 au lieu de 6.

Existe-t-il un moyen de contourner ce problème? Je ne veux pas vérifier le type de la variable dans mon code.

Merci

Répondre

5

Vous devez exécuter la fonction comme vous le feriez dans l'interpréteur Matlab:

matlab -nodesktop -nosplash -r "mycommand(3)" 

(Notez les parenthèses autour du 3)

1

markd a donné une bonne réponse. Bien que vous ayez mentionné que vous pourriez être mécontent de le faire (j'en suis sûr pour de bonnes raisons), une autre option consisterait à ajouter un peu de code au début de votre fonction, qui convertirait les entrées de caractères en chiffres si la commande était appelée matlab -r:

if ischar(a) 
    a = str2num(a); 
end 
Questions connexes