2011-05-20 18 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"); 

新生產線將不會與菜單雖然工作。