matlabでguiプログラムを作りたいのですが、複数のguiを使いたいです。たとえば、メインの gui 関数があり、編集テキスト ボックスを使用して別の gui からデータを取得したいとします。以下の例では、p 変数をメイン GUI に返します。
メイン GUI:
function varargout = FoProgram(varargin)
    gui_Singleton = 0;
    gui_State = struct('gui_Name',       mfilename, ...
                   'gui_Singleton',  gui_Singleton, ...
                   'gui_OpeningFcn', @FoProgram_OpeningFcn, ...
                   'gui_OutputFcn',  @FoProgram_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 FoProgram_OpeningFcn(hObject, eventdata, handles, varargin)
    handles.output = hObject;
    guidata(hObject, handles);
function varargout = FoProgram_OutputFcn(hObject, eventdata, handles) 
    varargout{1} = handles.output;
function labor_2_Callback(hObject, eventdata, handles) 
function fel1_Callback(hObject, eventdata, handles)
    cla reset;
    clc;
    clear all;
    n = guzu() %Here I call the second Gui function with edit textbox
    uiwait(gcf);
    x=linspace(-3*pi,3*pi,1000);
    y=sin(x);
    plot(x,y,'k','LineWidth',4)
    sz='ymcrgbkymcrgbkymcrgbkymcrgbk';
    hold on
    title('Sin(x) Taylor sora')
    %n = str2num(N);
    f=zeros(size(x));
    for i=1:n
        t=(-1)^(i-1)*x.^(2*i-1)/factorial(2*i-1);
        f=f+t;
        plot(x,f,sz(i),'LineWidth',2)
        axis([-10 10 -10 10])
        pause(1.5)
        hold on
        n=n+1;
    end
function exit_Callback(hObject, eventdata, handles)
    close
2 番目の GUI
function varargout = guzu(varargin)
    gui_Singleton = 1;
    gui_State = struct('gui_Name',       mfilename, ...
                       'gui_Singleton',  gui_Singleton, ...
                       'gui_OpeningFcn', @guzu_OpeningFcn, ...
                       'gui_OutputFcn',  @guzu_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 guzu_OpeningFcn(hObject, eventdata, handles, varargin)
    handles.output = hObject;
    guidata(hObject, handles);
function varargout = guzu_OutputFcn(hObject, eventdata, handles) 
    varargout{1} = handles.output;
function edit1_Callback(hObject, eventdata, handles)
    p = str2double(get(hObject,'String')) %I want to return this 'p' to the main gui
    close
function edit1_CreateFcn(hObject, eventdata, handles)
    if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
        set(hObject,'BackgroundColor','white');
    end