使用input()函数在Octave中获取键盘输入

时间:2011-05-20 16:30:31

标签: parsing input octave

我目前通过Xoctave在Windows中使用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 我希望它只存储activity = 1 我发现这样做的唯一方法是:     activity1 =输入("选择1或0");     activity2 = strrep(活动,"选择1或0","");     活性= str2num(活性2)

它将输出:     活性= 1

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

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

它提示:

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

pick a number, any number:  

我键入3然后按回车键返回:"错误:输入无效或超出范围"因为它试图解析整行,包括提示! = [帮助!

另外,我使用Xoctave与Windows中的Octave命令行进行交互。 不确定这是否有帮助。

谢谢!

1 个答案:

答案 0 :(得分:1)

我无法复制您的错误,但您可以尝试:

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

新行不适用于菜单。