2015-04-29 80 views
0

在我的GUI中有一個軸,我想添加一個按鈕來放大/縮小座標軸中的繪製信號。但我不知道如何編碼這些按鈕。任何幫助GUI matlab添加縮放按鈕用於縮放軸

+0

你想讓自己的按鈕或圖形工具欄工作嗎? – excaza

+0

我想把自己的按鈕,我是新的matlab。謝謝 –

+0

這是一個程序化的圖形用戶界面還是你使用GUIDE? – excaza

回答

0

在圖的放大和縮小鍵已經可以在Figure toolbar 工具欄可以通過圖菜單中可見:

View -> Figure Toolbar 

希望這有助於。

0

使用uitoolbar函數創建自定義工具欄。然後,使用uipushtool創建放大和縮小按鈕。在按鈕的回調函數中,您可以獲取當前的軸限制,然後按某個因子對其進行縮放。

1

根據您的評論,我創建了一個快速的小GUI來說明這個過程。

此代碼假定你有MATLAB 2014B或更新:

function heyitsaGUI 
% Set up a basic GUI 
h.mainwindow = figure(... % Main figure window 
    'Units','pixels', ... 
    'Position',[100 100 800 800], ... 
    'MenuBar','none', ... 
    'ToolBar','none' ... 
    ); 

h.myaxes = axes(... 
    'Parent', h.mainwindow, ... 
    'Position', [0.1 0.15 0.8 0.8] ... 
    ); 

h.zoomtoggle = uicontrol(... 
    'Style', 'togglebutton', ... 
    'Parent', h.mainwindow, ... 
    'Units', 'Normalized', ... 
    'Position', [0.4 0.05 0.2 0.05], ... 
    'String', 'Toggle Zoom', ... 
    'Callback', {@myzoombutton, h} ... % Pass along the handle structure as well as the default source and eventdata values 
    ); 

% Plot some data 
plot(1:10); 
end 

function myzoombutton(source, ~, h) 
% Callbacks pass 2 arguments by default: the handle of the source and a 
% structure called eventdata. Right now we don't need eventdata so it's 
% ignored. 
% I've also passed the handles structure so we can easily address 
% everything in our GUI 
% Get toggle state: 1 is on, 0 is off 
togglestate = source.Value; 

switch togglestate 
    case 1 
     % Toggle on, turn on zoom 
     zoom(h.myaxes, 'on') 
    case 0 
     % Toggle off, turn off zoom 
     zoom(h.myaxes, 'off') 
end 
end 

將產生你的東西,看起來像這樣:

Sample GUI

既然你是新的我會強烈建議您通過MATLAB's GUI building documentation閱讀,它引導您使用GUIDE構建編程GUI和GUI。我在這裏所做的是創建一個自定義小Callback function,myzoombutton,它允許您爲您的軸對象打開和關閉縮放。有幾個很好的方法來回答你的問題,這只是一個,不一定是最好的。我喜歡使用這種方法,因爲它給了我一個基於切換按鈕狀態添加其他操作和計算的框架。

看看代碼和鏈接的文檔,它應該有望幫助您開始。