GUI数据传递01-全局变量法

MATLAB GUI传递有9种方式

1、全局变量;

2、作为函数的参数传递;

3、利用控件的userdata数据;

4、为handles结构体添加新字段;

5、setappdata函数为句柄添加数据;

6、跨空间计算evalin和赋值assignin;

7、将数据保存到文件,需要时读取;

8、带参数调用GUI的M文件;

9、嵌套函数。

1、全局变量

说明:用全局变量传递参数,在每个不同的function中必须先声明一次,如下面的例子中,sin和cos函数中用到x、y时必须加上global语句,使用全局变量时任何地方变量的更改都会引起全局变量的变化,容易造成紊乱,建议少用!

<span style="font-size:18px;"><span style="font-family:Microsoft YaHei;font-size:18px;">function varargout = quanjubianliang(varargin)
gui_Singleton = 1;
gui_State = struct('gui_Name',       mfilename, ...
                   'gui_Singleton',  gui_Singleton, ...
                   'gui_OpeningFcn', @quanjubianliang_OpeningFcn, ...
                   'gui_OutputFcn',  @quanjubianliang_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
function quanjubianliang_OpeningFcn(hObject, eventdata, handles, varargin)
handles.output = hObject;
global x y1 y2
x=-2*pi:.25:2*pi;
y1=sin(x);
y2=cos(x);
guidata(hObject, handles);

function varargout = quanjubianliang_OutputFcn(hObject, eventdata, handles) 
varargout{1} = handles.output;

function sin_Callback(hObject, eventdata, handles)
global x y1
plot(x,y1,'*R-')

function cos_Callback(hObject, eventdata, handles)
global x y2
plot(x,y2,'sB:')</span></span>


界面如图所示:


图1  采用全局变量传递数据示例-sin_cos函数



猜你喜欢

转载自blog.csdn.net/lzx19901012/article/details/53083058