2014-08-28 54 views
0

我目前正在嘗試製作一個GUI,允許用戶選擇一系列x值,僅限於一組預定義的「標記」可以出現在一些數據的圖表上。 Matlab程序有一堆已經用一些標記分隔的數據,並要求用戶選擇其中兩個標記作爲開始和停止點,然後從那裏繼續。Matlab:如何與圖形進行交互以通過GUI定義範圍

我的問題是Matlab是否有一個內置函數或對象,它會在圖上放置某種交互式標記(最好是在圖的底部,以免模糊數據)用戶可以點擊,以便我可以從中獲取回調函數,並查看用戶選擇了哪個標記(也可能有能力更改顏色等來表示其選擇)。

最好答案不會涉及任何附加組件,但任何答案和任何幫助將不勝感激。謝謝!

+0

您可以使用兩個滾動條,一個選擇較低的值,一個選擇較高的值。 – Molly 2014-08-28 16:35:49

+0

這當然是一個可行的選擇,謝謝!但是,如果可能的話,我寧願根據圖形制作界面。如果我不知道怎麼做,我會考慮你的迴應! – sgbrown 2014-08-28 17:31:53

回答

2

這是一個非常簡單的例子,使用ginput,要求用戶選擇一個起點和終點來繪製數據。

clear 
clc 
close all 

x = 1:15*pi; 

figure 
plot(x,sin(x),'LineWidth',2); 

uiwait(msgbox('Select a start and finish point')) 

a = zeros(1,2); 
[a,~] = ginput(2); 

xStart = a(1); 
xFinish = a(2); 

set(gca,'XLim',[xStart xFinish],'XTick',round(xStart):1:round(xFinish)) 

這是你想過的嗎?你真的需要回撥還是足夠了?如果不是,你能否詳細說明你需要什麼樣的標記?

希望有幫助!

+0

感謝您的回答!這與我想要的類似,但我需要將(1)和(2)的值限制爲某些預設值(我當然可以從用戶那裏獲得「常規」區域,並選擇最接近的標記,但如果可能的話,我想要比這更乾淨一點)。 你說得對,我不需要回調,我只是認爲答案會涉及一個GUI對象。最後,我將使用這些標記的x值來截斷數據並繼續處理它,但它們確實應該限制爲預設值。再次感謝您的回答,這是一個開始的好地方! – sgbrown 2014-08-28 17:30:41

+0

好吧,那麼我會挖掘一些更復雜的東西:) – 2014-08-28 17:33:51

+0

你期望有很多標記? – 2014-08-28 17:34:45

相關問題