如何在MATLAB中编写GUI?

时间:2009-07-12 10:08:05

标签: matlab user-interface matlab-guide

我需要在MATLAB中为我的项目创建一个GUI。我到处寻找如何编程GUI的例子,但我找不到很多东西。在MATLAB中有哪些优秀的GUI编程站点或技术?

4 个答案:

答案 0 :(得分:11)

你需要去的第一个地方是Creating Graphical User Interfaces上的Matlab帮助

然后,您可以观看this tutorial videothis one

This tutorial也很好。

答案 1 :(得分:9)

以下是我制作MATLAB GUI的所有视频

http://blogs.mathworks.com/videos/category/gui-or-guide/

答案 2 :(得分:2)

我最近不得不编写一个控制一些图表的简单GUI。我不确切知道你的任务是什么,但这里有一些基本代码可以帮助你入门。这创造了两个数字;图1具有对照,图2具有y = x ^ p的图。在框中输入p的值,然后按Enter键进行注册并重新绘制;然后按按钮重置为默认值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

GUI背后的基本思想是,当你操纵控件时,他们称之为“回调”函数,即事件处理程序;这些函数能够通过控件使用控制句柄和set / get方法进行交互,以获取或更改其属性。

要查看可用属性列表,请仔细阅读Matlab文档网站(http://www.mathworks.com/access/helpdesk/help/techdoc/infotool/hgprop/doc_frame.html)上提供信息丰富的Handle Graphics属性浏览器;单击UI对象(或您需要的任何其他对象)。

希望这有帮助!

答案 3 :(得分:2)

41 complete GUI examples发布到MathWorks File Exchange的这些Matt Fig是一个很好的起点。提交的内容甚至是Pick of the Week