2009-07-12 11 views
8

Ich muss eine GUI in MATLAB für mein Projekt erstellen. Ich habe überall nach Beispielen gesucht, wie man eine GUI programmiert, aber ich konnte nicht viel finden. Was sind einige gute Seiten oder Techniken für GUI-Programmierung in MATLAB?Wie kann ich eine GUI in MATLAB programmieren?

Antwort

2

ich vor kurzem eine einfache GUI programmieren musste, dass einige Grundstücke kontrolliert. Ich weiß nicht genau, was deine Aufgabe ist, aber hier ist ein grundlegender Code, mit dem du anfangen kannst. Dies schafft zwei Figuren; Abbildung 1 hat Kontrollen, Abbildung 2 hat eine Darstellung von y = x^p. Sie geben den Wert von p in das Feld ein und drücken die Eingabetaste, um es zu registrieren und neu zu plotten; Drücken Sie dann die Taste, um auf den Standardwert p = 1 zurückzusetzen.

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 

Die Grundidee hinter GUIs ist, dass, wenn Sie Steuerelemente manipulieren sie „Rückruf“ Funktionen aufrufen, das heißt Ereignishandler; Diese Funktionen können über Steuerelemente interagieren, indem sie die Steuerelemente verwenden und Methoden zum Abrufen/Ändern ihrer Eigenschaften festlegen.

Um zu der Liste der verfügbaren Eigenschaften zu gelangen, lesen Sie den sehr informativen Handle Graphics Property Browser auf Matlabs Dokumentationswebsite (http://www.mathworks.com/access/helpdesk/help/techdoc/infotool/hgprop/doc_frame.html); Klicken Sie auf UI-Objekte (oder was auch immer Sie brauchen).

Hoffe, das hilft!