2011-05-20 2 views
1

J'utilise actuellement Octave dans Windows via Xoctave et j'ai le problème suivant.Obtenir des entrées de clavier dans Octave en utilisant la fonction input()

J'ai essayé d'exécuter un script qui commence par

activity = input("What would you like to do? "); 

Quand j'ai appelé ce script dans la console, il imprime

What would you like to do? 

Quand je touche un numéro et appuyez sur Entrée, il renvoie:

What would you like to do? 1 

error: `What' undefined near line 4 column 1 

>> 

Il semble que la console essaie d'analyser la sortie de la commande précédente (c'est-à-dire, essayer d'analyser toute la ligne, y compris le texte prompt).

Pour obtenir une image plus claire de ce que je suis en train de dire, il suffit de sauvegarder un script avec seulement la ligne:

m = input('Enter m: '); 

puis essayez d'exécuter ce script dans Xoctave. Je crois que vous aurez la même erreur aussi. Je crois que cela a à voir avec la modification du comportement d'analyse par défaut, mais je ne suis pas sûr de savoir comment.

@Bart_Kiers
Je pense que vous comprenez mal = \ Quand je fais ce que vous venez prescrit, il stocke: activité = Que voulez-vous faire? 1 Je veux juste stocker l'activité = 1 la seule façon que j'ai trouvé pour faire ceci est de faire: activity1 = input ("Pick 1 or 0"); activity2 = strrep (activité, "Choisir 1 ou 0", ""); activité = str2num (activity2)

auquel il sera sortie: activité = 1

Pour clarifier la question, il crée un problème similaire, mais beaucoup plus frustrant en utilisant la fonction de menu. si je fais ceci:

number=menu("What's your favorite number?",1,2,3,4,5); 

il demande:

[ 1] 1 
[ 2] 2 
[ 3] 3 
[ 4] 4 
[ 5] 5 

pick a number, any number: 

touche I 3 et appuyez sur Entrée et il retourne: « Erreur: entrée invalide ou hors de portée », car il tente d'analyser toute la ligne, y compris l'invite! = [aide!

En outre, j'utilise Xoctave pour interfacer avec la ligne de commande Octave dans Windows. Je ne sais pas si cela aide.

Merci!

+0

Ne voyez pas pourquoi 'input()' ne fonctionne pas. L'avez-vous essayé en utilisant une console Octave standard, qui fonctionne pour moi (je suis sur un Mac, et je n'ai pas accès à Xoctave)? – chl

Répondre

1

Je ne peux pas reproduire votre erreur, mais vous pouvez essayer:

m = input("Enter m: \n"); 

Nouvelle ligne ne fonctionne pas avec un menu bien.

Questions connexes