我正在嘗試編寫檢測鍵盤筆畫左右箭頭的MATLAB代碼。以下是我寫的代碼。如何在MATLAB中只檢測一個鍵盤筆劃?
Background = figure(1);
for i = 1:10
key(i) = double(get(Background,'CurrentCharacter'));
end
但它顯示了一條消息,說明元素數不匹配。 如何解決這個問題?
我正在嘗試編寫檢測鍵盤筆畫左右箭頭的MATLAB代碼。以下是我寫的代碼。如何在MATLAB中只檢測一個鍵盤筆劃?
Background = figure(1);
for i = 1:10
key(i) = double(get(Background,'CurrentCharacter'));
end
但它顯示了一條消息,說明元素數不匹配。 如何解決這個問題?
你以前打過waitforbuttonpress
嗎?只要沒有鍵被按下,get(...,'CurrentCharacter')
將返回一個空的字符數組,它將雙倍轉換爲[]
。這很可能會導致「下標的分配維度不匹配」。分配給key(i)
時出錯。
爲什麼你實際調用函數10次?您每次都會得到相同的結果,因此分配給key(i)
的所有值都相等。如果您想要連續記錄10個按鍵,則循環內部缺少waitforbuttonpress
。
順便說一句,我隱含假設Background
是活動人物的句柄。你沒有告訴我們它是什麼。
感謝您的回答。我只是想區分左右箭頭之間的按鍵。 'waitforbuttonpress'只返回是否有按鈕點擊,所以這就是我沒有使用該功能的原因。 –
你需要兩個,'waitforbuttonpress'將等待事件發生,*以後*使用get(...,'CurrentCharacter')'知道它是左還是右... – Florian
好吧,我現在明白了。謝謝! –
需要更多信息。 'Background'提供的句柄的確切類型是什麼?我們無法重現您的錯誤。 – rayryeng
對不起。我添加一行關於「背景」的信息 –