2009-07-12 3 views
8

Ho bisogno di creare una GUI in MATLAB per il mio progetto. Ho cercato dappertutto esempi di come programmare una GUI, ma non ho potuto trovare molto. Quali sono alcuni buoni siti o tecniche per la programmazione GUI in MATLAB?Come posso programmare una GUI in MATLAB?

risposta

2

Recentemente ho dovuto programmare una semplice interfaccia grafica che controlla alcuni appezzamenti. Non so esattamente quale sia il tuo compito, ma ecco un codice di base per iniziare. Questo crea due figure; La Figura 1 ha i controlli, la Figura 2 ha un grafico di y = x^p. Inserisci il valore di p nella casella e premi invio per registrarlo e sostituirlo; quindi premere il pulsante per ripristinare l'impostazione predefinita p = 1.

function SampleGUI() 
    x=linspace(-2,2,100); 
    power=1; 
    y=x.^power; 
    ctrl_fh = figure; % controls figure handle 
    plot_fh = figure; % plot figure handle 
    plot(x,y); 
    % uicontrol handles: 
    hPwr = uicontrol('Style','edit','Parent',... 
         ctrl_fh,... 
         'Position',[45 100 100 20],... 
         'String',num2str(power),... 
         'CallBack',@pwrHandler); 

    hButton = uicontrol('Style','pushbutton','Parent',ctrl_fh,... 
         'Position',[45 150 100 20],... 
         'String','Reset','Callback',@reset); 

    function reset(source,event,handles,varargin) % boilerplate argument string 
     fprintf('resetting...\n'); 
     power=1; 
     set(hPwr,'String',num2str(power)); 
     y=x.^power; 
     compute_and_draw_plot(); 
    end 

    function pwrHandler(source,event,handles,varargin) 
     power=str2num(get(hPwr,'string')); 
     fprintf('Setting power to %s\n',get(hPwr,'string')); 
     compute_and_draw_plot(); 
    end 

    function compute_and_draw_plot() 
     y=x.^power; 
     figure(plot_fh); plot(x,y); 
    end 
end 

L'idea alla base GUI è che quando si manipolare controlli che chiamano funzioni "callback", vale a dire i gestori di eventi; queste funzioni sono in grado di interagire attraverso i controlli usando le maniglie di controllo e impostare/ottenere metodi per ottenere o modificare le loro proprietà.

Per visualizzare l'elenco delle proprietà disponibili, esaminare l'intuitivo Gestore proprietà grafiche sul sito Web della documentazione di Matlab (http://www.mathworks.com/access/helpdesk/help/techdoc/infotool/hgprop/doc_frame.html); clicca su Oggetti UI (o qualsiasi altra cosa di cui hai bisogno).

Spero che questo aiuti!