由GUIDE生成的M文件,控制GUI并决定GUI对用户操作的响应。它包含了运行GUI的所有代码。用户建立GUI时,系统自动建立了其M文件的基本框架,用户在该框架下编写GUI控件的回调函数。

GUI的M文件由一系列的子函数组成,包括主函数MainFcn、Opening函数、Output函数和各个回调函数CallBack。其中主函数不能修改,否则导致GUI界面初始化失败。

M文件的主函数代码:如文件名为plotcmaes

function varargout = plotcmaes(varargin)

gui_Singleton = 1;

gui_State = struct('gui_Name',       mfilename, ...

                   'gui_Singleton',  gui_Singleton, ...

                   'gui_OpeningFcn',@plotsfso_OpeningFcn, ...                                

                   'gui_OutputFcn',  @plotsfso_OutputFcn, ...                                                        'gui_LayoutFcn', [], ... 

                   'gui_Callback', []);

if nargin && ischar(varargin{1})

    gui_State.gui_Callback = str2func(varargin{1});

end

if nargout

    [varargout{1:nargout}] = gui_mainfcn(gui_State, varargin{:});

else

    gui_mainfcn(gui_State, varargin{:});

end

说明:

程序第1行为主函数声明。plotcmaes为函数名,varargin为输入参数,varargout为输出参数。当创建GUI时,varargin为空。当触发GUI控件对象时,varargin为一个1*4的单元数组。第1个单元存放空间的回调函数名,第2~4单元存放该回调函数的输入参数,分别为hObject:当前回调函数对应的GUI对象句柄,eventdata:附加参数,handles:当前GUI所有数据的结构体。

程序第2行指定是否只能产生一个界面。gui_Singleton = 1表示只能产生一个窗口实例,gui_Singleton = 0表示可以产生多个窗口实例。

程序第3~8行为一个结构体。

程序第9~11判断是创建GUI还是执行回调函数。

程序第12~16为运行GUI默认的处理函数。

MATLAB <wbr>GUI的M文件详解

转自:http://blog.sina.com.cn/s/blog_5f7f49ff0101oc9f.html