2011-05-20 192 views
1

我目前在Windows中通过Xoctave使用Octave,并遇到以下问题。使用input()函数在Octave中获取键盘输入

我试图运行与

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

当我打电话控制台这个脚本启动脚本,它打印出

What would you like to do? 

当我一个号码,然后按键进入,它返回:

What would you like to do? 1 

error: `What' undefined near line 4 column 1 

>> 

看起来好像控制台正试图解析前一个命令的输出(即试图解析整行,包括提示文本)。

要得到什么,我想说一个更清晰的画面,只保存一个脚本只有一行:

m = input('Enter m: '); 

然后尝试运行Xoctave该脚本。我相信你也会得到同样的错误。

我相信这与更改默认解析行为有关,但我不知道如何。

@Bart_Kiers
我想你误会= \ 当我做你只是规定了什么,它存储: 活性=你想怎么办? 1 我希望它只存储活动= 1 我发现这样做的唯一方法是: activity1 = input(“Pick 1 or 0”); activity2 = strrep(activity,“Pick 1 or 0”,“”); 活性= str2num(活性2)

其将输出: 活性= 1

为了阐明该问题,它创建一个类似的,但显著更令人沮丧的使用菜单功能的问题。 如果我这样做:

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

系统提示:在3并按

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

pick a number, any number: 

我钥匙进入和返回:“错误:输入无效或超出范围”,因为它试图解析整个行,包括提示! = [帮助!

此外,我正在使用Xoctave与Windows中的Octave命令行进行接口。 不知道这是否有帮助。

谢谢!

+0

看不到为什么input()不起作用。您是否使用标准的Octave控制台(适用于我(我在Mac上,无法访问Xoctave))试用它? – chl 2011-05-25 19:18:36

回答

1

我不能复制你的错误,但你可以尝试:

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

新生产线将不会与菜单虽然工作。