MATLAB GUI的数据传递(同一界面,不同界面之间)

第一种:同一界面中不同控件之间的数据传递机制**
使用两个putton 和一个edit 作例子
MATLAB GUI的数据传递(同一界面,不同界面之间)_第1张图片
(1)使用global 变量

% --- Executes just before gui1 is made visible.
function gui1_OpeningFcn(hObject, eventdata, handles, varargin)
% This function has no output args, see OutputFcn.
% hObject    handle to figure
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA)
% varargin   command line arguments to gui1 (see VARARGIN)
% Choose default command line output for gui1
handles.output = hObject;
global a;%%%%%%使用global 变量!!!!
a=0;
% Update handles structure
guidata(hObject, handles);

% --- Executes on button press in pushbutton1.
function pushbutton1_Callback(hObject, eventdata, handles)
% hObject    handle to pushbutton1 (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA)
global a;%%%%%%使用global 变量!!!!
a=a+1;
set(handles.edit1,'string',num2str(a));

(2)使用userdata 属性

% --- Executes just before gui1 is made visible.
function gui1_OpeningFcn(hObject, eventdata, handles, varargin)
% This function has no output args, see OutputFcn.
% hObject    handle to figure
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA)
% varargin   command line arguments to gui1 (see VARARGIN)
% Choose default command line output for gui1
handles.output = hObject;
set(handles.pushbutton1,'userdata',0);%%%%%%使用userdata!!!!
% Update handles structure
guidata(hObject, handles);

function pushbutton1_Callback(hObject, eventdata, handles)
% hObject    handle to pushbutton1 (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA)
a=get(handles.pushbutton1,'Userdata');%%%%%%使用userdata!!!!
a=a+1;
set(handles.pushbutton1,'Userdata',a);%%%%%%使用userdata!!!!
set(handles.edit1,'string',num2str(a));

% --- Executes on button press in pushbutton2.
function pushbutton2_Callback(hObject, eventdata, handles)
% hObject    handle to pushbutton2 (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA)
a=get(handles.pushbutton1,'Userdata');%%%%%%使用userdata!!!!
a=a-1;
set(handles.pushbutton1,'Userdata',a);%%%%%%使用userdata!!!!
set(handles.edit1,'string',num2str(a));

(3)使用applicationdata,(AppData)

% --- Executes just before gui1 is made visible.
function gui1_OpeningFcn(hObject, eventdata, handles, varargin)
% This function has no output args, see OutputFcn.
% hObject    handle to figure
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA)
% varargin   command line arguments to gui1 (see VARARGIN)
% Choose default command line output for gui1
handles.output = hObject;
setappdata(handles.figure1,'a',0);
% Update handles structure
guidata(hObject, handles);

% --- Executes on button press in pushbutton1.
function pushbutton1_Callback(hObject, eventdata, handles)
% hObject    handle to pushbutton1 (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA)
a=getappdata(handles.figure1,'a');
a=a+1;
setappdata(handles.figure1,'a',a);
set(handles.edit1,'string',num2str(a));

% --- Executes on button press in pushbutton2.
function pushbutton2_Callback(hObject, eventdata, handles)
% hObject    handle to pushbutton2 (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA)
a=getappdata(handles.figure1,'a');
a=a-1;
setappdata(handles.figure1,'a',a);
set(handles.edit1,'string',num2str(a));

(4)使用GUI数据

% --- Executes just before gui1 is made visible.
function gui1_OpeningFcn(hObject, eventdata, handles, varargin)
% This function has no output args, see OutputFcn.
% hObject    handle to figure
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA)
% varargin   command line arguments to gui1 (see VARARGIN)
% Choose default command line output for gui1
handles.output = hObject;
handles.a=0;
% Update handles structure
guidata(hObject, handles);

% --- Executes on button press in pushbutton1.
function pushbutton1_Callback(hObject, eventdata, handles)
% hObject    handle to pushbutton1 (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA)
handles.a=handles.a+1;
% Update handles structure
guidata(hObject, handles);
set(handles.edit1,'string',num2str(handles.a));

function pushbutton2_Callback(hObject, eventdata, handles)
% hObject    handle to pushbutton2 (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA)
handles.a=handles.a-1;
% Update handles structure
guidata(hObject, handles);
set(handles.edit1,'string',num2str(handles.a));

第二种:不同界面中不同控件之间的数据传递机制*

1)通过guihandles获得某一窗口的handles结构体实现对其他窗口的数据访问
2)有输出参数的多窗口编程

你可能感兴趣的:(MATLAB之APP设计)