2013-09-29 62 views
2

我有一個高斯繪製在-3到3範圍內的java程序(f = exp(-x^2/3))。我捕獲鼠標事件並讓鼠標只能沿着曲線移動,以便拾取值(f)和相應的x。有可能在matlab中實現相同的東西嗎?我在matlab中搜索鼠標事件,但似乎沒有任何低級別的鼠標控制甚至響應。有沒有辦法讓鼠標在matlab中保持曲線?

正如A. Donda所建議的,我嘗試了datacursormode。如果我在同一個圖上顯示兩條曲線,我可以輕鬆地在任一曲線上跟蹤鼠標的位置,不知道是否有可能在跟蹤中捕獲事件,以便我可以將相同曲線的值返回x座標,而我正在追蹤另一條曲線?或者如果可以改變顯示的黃色提示的方式或內容?我真正感興趣的是在同一個x位置上來自兩條曲線的函數值的和或差或乘積。

+1

要修改數據提示之前設置SnapToDataVertex屬性爲off,點擊右鍵,那麼「編輯文本功能」將打開一個回調編輯器。 – marsei

回答

4

不完全一樣的東西,但您可以在圖形窗口中使用「工具/數據光標」,也可以通過工具欄中的「黃色筆記帶十字線」圖標或功能datacursormode訪問。

+0

這看起來很有趣,它給了我一些新的想法(我編輯了我的問題),但不知道是否有可能在matlab中實現它 – user1285419

+0

我認爲Magla對你的問題的最後評論應該可以幫助你實現你想要的。 –

3

用matlab無法輕鬆設置鼠標位置(例如,參見here)。如@A所述。 Donda,直接的解決方案是使用數據光標。

將「堅持到曲線」的行爲用鼠標

隨着datacursormode on,您可以右擊軸,並設置Selection StyleMouse Position。然後,選擇曲線上的第一個點。將出現一個包含(x,y)的數據提示。選擇第二個點,但保持鼠標按鈕不變:數據光標將粘到曲線上,並將跟隨鼠標。

將「堅持到曲線」的行爲編程

獲取的datacursormode手柄,並呼籲datacursormode on

cursorMode = datacursormode(gcf); 
set(cursorMode, 'SnapToDataVertex', 'off'); 
datacursormode on 
相關問題