Stand alone windows .exe crashes after using deploy tool?
    4 views (last 30 days)
  
       Show older comments
    
Hi there, I have been trying to create a stand alone windows application from my GUI, but everytime I do so it crashes and does not give me any results? Though it works fine if I run the .m file. I have put my code below, if anyone can see any reason why this would be happening it would be a huge help!
(If it's useful, typical values for the edit text boxes would be - 400e-9, 4e-9, 295, 9.6e-4 and 200)
Thanks.
     function varargout = GUI(varargin)
    % GUI MATLAB code for GUI.fig
    %      GUI, by itself, creates a new GUI or raises the existing
    %      singleton*.
    %
    %      H = GUI returns the handle to a new GUI or the handle to
    %      the existing singleton*.
    %
    %      GUI('CALLBACK',hObject,eventData,handles,...) calls the local
    %      function named CALLBACK in GUI.M with the given input arguments.
    %
    %      GUI('Property','Value',...) creates a new GUI or raises the
    %      existing singleton*.  Starting from the left, property value pairs are
    %      applied to the GUI before GUI_OpeningFcn gets called.  An
    %      unrecognized property name or invalid value makes property application
    %      stop.  All inputs are passed to GUI_OpeningFcn via varargin.
    %
    %      *See GUI Options on GUIDE's Tools menu.  Choose "GUI allows only one
    %      instance to run (singleton)".
    %
    % See also: GUIDE, GUIDATA, GUIHANDLES
    % Edit the above text to modify the response to help GUI
    % Last Modified by GUIDE v2.5 06-Jul-2012 13:54:29
    % Begin initialization code - DO NOT EDIT
    gui_Singleton = 1;
    gui_State = struct('gui_Name',       mfilename, ...
                       'gui_Singleton',  gui_Singleton, ...
                       'gui_OpeningFcn', @GUI_OpeningFcn, ...
                       'gui_OutputFcn',  @GUI_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
    % End initialization code - DO NOT EDIT
    % --- Executes just before GUI is made visible.
    function GUI_OpeningFcn(hObject, ~, 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 GUI (see VARARGIN)
    % Choose default command line output for GUI
    handles.output = hObject;
    handles.a = 0;
    handles.b = 0;
    handles.T = 0;
    handles.N = 0;
    handles.alpha = 0;
    handles.timer=0;
    handles.steady=0;
    % Update handles structure
    guidata(hObject, handles);
    % UIWAIT makes GUI wait for user response (see UIRESUME)
    % uiwait(handles.figure1);
    % Menus
    filemenu = uimenu('Label','File');
    uimenu(filemenu,'Label','Exit','Callback',@closeRequestFcn);
     function closeRequestFcn(varargin)
            % Close the Figure Window
            closereq;
    % --- Outputs from this function are returned to the command line.
    function varargout = GUI_OutputFcn(~, ~, handles) 
    % varargout  cell array for returning output args (see VARARGOUT);
    % hObject    handle to figure
    % eventdata  reserved - to be defined in a future version of MATLAB
    % handles    structure with handles and user data (see GUIDATA)
    % Get default command line output from handles structure
    varargout{1} = handles.output;
    function a_box_Callback(hObject, ~, handles)
    % hObject    handle to a_box (see GCBO)
    % eventdata  reserved - to be defined in a future version of MATLAB
    % handles    structure with handles and user data (see GUIDATA)
    % Hints: get(hObject,'String') returns contents of a_box as text
    %        str2double(get(hObject,'String')) returns contents of a_box as a double
    handles.a = str2double(get(hObject,'String'));
    guidata(hObject,handles);
    % --- Executes during object creation, after setting all properties.
    function a_box_CreateFcn(hObject, ~, ~)
    % hObject    handle to a_box (see GCBO)
    % eventdata  reserved - to be defined in a future version of MATLAB
    % handles    empty - handles not created until after all CreateFcns called
    % Hint: edit controls usually have a white background on Windows.
    %       See ISPC and COMPUTER.
    if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
        set(hObject,'BackgroundColor','white');
    end
    function b_box_Callback(hObject, ~, handles)
    % hObject    handle to b_box (see GCBO)
    % eventdata  reserved - to be defined in a future version of MATLAB
    % handles    structure with handles and user data (see GUIDATA)
    % Hints: get(hObject,'String') returns contents of b_box as text
    %        str2double(get(hObject,'String')) returns contents of b_box as a double
    handles.b = str2double(get(hObject,'String'));
    guidata(hObject,handles);
    % --- Executes during object creation, after setting all properties.
    function b_box_CreateFcn(hObject, ~, ~)
    % hObject    handle to b_box (see GCBO)
    % eventdata  reserved - to be defined in a future version of MATLAB
    % handles    empty - handles not created until after all CreateFcns called
    % Hint: edit controls usually have a white background on Windows.
    %       See ISPC and COMPUTER.
    if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
        set(hObject,'BackgroundColor','white');
    end
    function T_box_Callback(hObject, ~, handles)
    % hObject    handle to T_box (see GCBO)
    % eventdata  reserved - to be defined in a future version of MATLAB
    % handles    structure with handles and user data (see GUIDATA)
    % Hints: get(hObject,'String') returns contents of T_box as text
    %        str2double(get(hObject,'String')) returns contents of T_box as a double
    handles.T = str2double(get(hObject,'String'));
    guidata(hObject,handles);
    % --- Executes during object creation, after setting all properties.
    function T_box_CreateFcn(hObject, ~, ~)
    % hObject    handle to T_box (see GCBO)
    % eventdata  reserved - to be defined in a future version of MATLAB
    % handles    empty - handles not created until after all CreateFcns called
    % Hint: edit controls usually have a white background on Windows.
    %       See ISPC and COMPUTER.
    if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
        set(hObject,'BackgroundColor','white');
    end
    function N_box_Callback(hObject, ~, handles)
    % hObject    handle to N_box (see GCBO)
    % eventdata  reserved - to be defined in a future version of MATLAB
    % handles    structure with handles and user data (see GUIDATA)
    % Hints: get(hObject,'String') returns contents of N_box as text
    %        str2double(get(hObject,'String')) returns contents of N_box as a double
    handles.visc = str2double(get(hObject,'String'));
    guidata(hObject,handles);
    % --- Executes during object creation, after setting all properties.
    function N_box_CreateFcn(hObject, ~, ~)
    % hObject    handle to N_box (see GCBO)
    % eventdata  reserved - to be defined in a future version of MATLAB
    % handles    empty - handles not created until after all CreateFcns called
    % Hint: edit controls usually have a white background on Windows.
    %       See ISPC and COMPUTER.
    if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
        set(hObject,'BackgroundColor','white');
    end
    function alpha_box_Callback(hObject, ~, handles)
    % hObject    handle to alpha_box (see GCBO)
    % eventdata  reserved - to be defined in a future version of MATLAB
    % handles    structure with handles and user data (see GUIDATA)
    % Hints: get(hObject,'String') returns contents of alpha_box as text
    %        str2double(get(hObject,'String')) returns contents of alpha_box as a double
    handles.G = str2double(get(hObject,'String'));
    guidata(hObject,handles);
    % --- Executes during object creation, after setting all properties.
    function alpha_box_CreateFcn(hObject, ~, ~)
    % hObject    handle to alpha_box (see GCBO)
    % eventdata  reserved - to be defined in a future version of MATLAB
    % handles    empty - handles not created until after all CreateFcns called
    % Hint: edit controls usually have a white background on Windows.
    %       See ISPC and COMPUTER.
    if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
        set(hObject,'BackgroundColor','white');
    end
    % --- Executes during object creation, after setting all properties.
    function axes1_CreateFcn(~, ~, ~)
    % hObject    handle to axes1 (see GCBO)
    % eventdata  reserved - to be defined in a future version of MATLAB
    % handles    empty - handles not created until after all CreateFcns called
    % Hint: place code in OpeningFcn to populate axes1
    % handles.axes1=hobject;
    % guidata(hObject,handles);
    % --- Executes on button press in execute.
    function execute_Callback(~, ~, handles)
    % hObject    handle to execute (see GCBO)
    % eventdata  reserved - to be defined in a future version of MATLAB
    % handles    structure with handles and user data (see GUIDATA)
    tic;
    hp = uipanel('Title','Steady State Value','FontSize',14,...
                 'Position',[.7499999999990 .12 .215 .12]);
    time_pan = uipanel('Title','Calculation Time','FontSize',14,...
                 'Position',[.07 .85 .215 .12]);
    % Parameters
    k_b = 1.3806503e-23;
    r = handles.a/handles.b;
    F_t = sqrt(r^2-1)/(r^(1/3)*log(r+sqrt(r^2-1)));
    F_r = (4*(r^4-1))/((3*r^2)*(((2*(2*r^2-1))/(r^(4/3)*F_t))-2));
    lambda = (4*F_r*pi*handles.visc*handles.a*handles.b^2)/(3*k_b*handles.T);
    global M;
    P_lambda = handles.G*lambda; %Peclet number
    N = 12; %Solution expansion order (N even)
    N_tilde = (N/2+1)^2-1; %Number of non-trivial ODEs
    N_total = 2*(N+1)^2; %Number of A_iqp for i=0,1, p,q=0,1,2,...,N
    N_ind = N_total/2;
    A = ones(N_total,1); %A_inm (or A_iqp)
    for n = 0:N    
        A((N+1)^2+n*(N+1)+1,1) = 0; %A_1n0=0    
    end
    M = zeros(N_total,N_total); %Matrix of coefficients of the A_iqp for the A_dot_iqp. For example, M(1,iqp)=M(1,i(N+1)^2+q(N+1)+p+1)
    a = zeros(N+1,N+1,N+1,N+1); %a(m+1,n+1,p+1,q+1) for m,n,p,q = 0,...,N
    %We calculate the a_mpnq
    for n = 0:2:N
        for m = 0:2:n
            for q = 0:2:N
                for p = 0:2:q
                    if ((m-p==2) && (n-q==2))
                       a(m+1,n+1,p+1,q+1) = (n-2)*factorial(n+m)*(1-eq(m,0))/(4*(2*n+1)*(2*n-1)*factorial(n+m-4));
                    elseif ((m-p==2) && (n-q==0))
                       a(m+1,n+1,p+1,q+1) = 3*factorial(n-m+2)*factorial(n+m)*(1-eq(m,0))/(4*(2*n-1)*(2*n+3)*factorial(n+m-2)*factorial(n-m));
                    elseif ((m-p==2) && (n-q==-2))
                       a(m+1,n+1,p+1,q+1) = -(n+3)*factorial(n-m+4)*(1-eq(m,0))/(4*(2*n+1)*(2*n+3)*factorial(n-m));
                    elseif ((m-p==0) && (n-q==0))
                       a(m+1,n+1,p+1,q+1) = -m/2;
                    elseif ((m-p==-2) && (n-q==2))
                       a(m+1,n+1,p+1,q+1) = -(n-2)*(1+eq(m,0))/(4*(2*n+1)*(2*n-1));
                    elseif ((m-p==-2) && (n-q==0))
                       a(m+1,n+1,p+1,q+1) = -3*(1+eq(m,0))/(4*(2*n-1)*(2*n+3));
                    elseif ((m-p==-2) && (n-q==-2))
                       a(m+1,n+1,p+1,q+1) = (n+3)*(1+eq(m,0))/(4*(2*n+1)*(2*n+3));
                    end 
                end 
            end 
        end
    end
    %After applying the Galerkin method, we obtain a linear system of ODEs.
        for q = 0:2:N
            for p = 0:2:q
                for n = 0:2:N
                    for m = 0:2:n 
                        M(q*(N+1)+p+1,q*(N+1)+p+1) = -q*(q+1)/6; %Coefficient of A_0qp for A_dot_0qp
                        M(q*(N+1)+p+1,(N+1)^2+n*(N+1)+m+1) = -P_lambda*a(m+1,n+1,p+1,q+1); %Coefficients of the A_1nm for A_dot_0qp
                        M((N+1)^2+q*(N+1)+p+1,(N+1)^2+q*(N+1)+p+1) = -q*(q+1)/6; %Coefficient of A_1qp for A_dot_1qp
                        M((N+1)^2+q*(N+1)+p+1,n*(N+1)+m+1) = P_lambda*a(m+1,n+1,p+1,q+1); %Coefficients of the A_0nm for A_dot_1qp                    
                    end                
                end            
            end        
        end
    M = M*diag(A); %Set the coefficients of the A_1n0 to zero to account for A_1n0=0
    M(1,:) = 0; %Set the coefficients for A_dot_000 to zero
    for q=0:2:N    
        M((N+1)^2+q*(N+1)+1,:) = 0; %Set the coefficients for the A_dot_1q0 to zero    
    end
    x0 = zeros(N_total,1); %Initial conditions
    x0(1,1) = 1;     %A_000(t=0)=1 
    dx = @(tau,x)  M*x;
    x = ode45(dx,[0,10],x0); %Solve in the interval tau=[0,10]
    N_steps = size(x.x,2); %Number of time steps in ODE solutions
    syms  the phi cthe
    poly = vpa(zeros(1,N+1));
    for n = 0:N
        poly(n+1) = (1/(2^n*factorial(n)))*diff((cthe^2-1)^n,cthe,n); %generate legendre polynomials
    end
    P = vpa(zeros(N+1,N+1));
    for n = 0:1:N
        for m = 0:1:n
            if m > n
                P(m+1,n+1) = 0;
            else 
                P(m+1,n+1) = ((-1)^m)*((sin(the))^m)*diff((poly(n+1)),cthe,m);  %calculate matrix of associated Legendre polynomials
            end
        end
    end
    P_fin = subs(P,cthe,cos(the));
    P_fina = eval(P_fin);  %these three lines substitute cos(the) back in for cthe
    A0 = x.y(1:N_ind,:);  %generte matrix of A_0 amplitudes 
    A1_inp = N_total+1;
    A1 = x.y(N_ind+1:N_total,:); %generte matrix of A_1 amplitudes
    MM = zeros(N_ind,1);
    MM(1) = 0;
    for n = 1:N_ind-1
        MM(n+1) = MM(n)+1;
        if MM(n)==12
           MM(n+1) = 0;       %generate m values for psi calculation
        end
    end
    psi = vpa(zeros(N_ind, N_steps));
    P_final = reshape(P_fina,N_ind,1);
    for t = 1:1:N_steps
        psi(:,t) = (A0(:,t).*P_final.*cos(MM.*phi))+(A1(:,t).*P_final.*sin(MM.*phi));
    end
    final_psi = sum(psi(1:N_ind,:)).*(1/(4*pi));
    test = final_psi.*sin(the);
    fun_for_S = ((sin(the)^2)*(cos(phi)^2)).*test;  %function to be integrated
    sincos = double(int(int((fun_for_S),the,0,(pi)),phi,0,(2*pi))); %integrate with respect to theta and phi
    S = (0.5)*((3.*sincos)-1);  %calculate orientation parameter at each time point
    time = x.x .* lambda;
    leg = num2str(handles.G);
    leg_string = strcat(leg, ' s^{-1}');
    plot(time,S, 'DisplayName', leg_string);
    xlabel('Time / s','FontSize',14)
    ylabel('Orientation / S', 'FontSize',14)
    title('\it{Calculation of Orientation Parameter}','FontSize',18)
    xlim([0 time(N_steps)])
    hold all
    legend('-DynamicLegend', 'Location', 'East')
    display_ss = num2str(S(N_steps));
    display_time_1 = num2str(toc);
    display_time = strcat(display_time_1, ' seconds');
    hList = uicontrol('Parent',hp,'Style','text','Position',[90 4 70 30]);
    set(hList,'String',display_ss, 'FontSize',13);  % Displays steady state value
    hList = uicontrol('Parent',time_pan,'Style','text','Position',[45 4 150 30]);
    set(hList,'String',display_time, 'FontSize',13);  % Displays time taken for calculation in seconds
    clear all
0 Comments
Answers (1)
  Kaustubha Govind
    
      
 on 10 Jul 2012
        Could you try running your executable from a command window (as opposed to simply double-clicking on it)? Alternatively, you can compile your application as a "Console Application" instead of "Windows Standalone". Using either technique, the executable will report any errors in the system command window. Debugging those errors will help you figure out a solution.
4 Comments
  Andrew Groth
 on 4 Mar 2013
				I tried most of these suggestions. I hadn't thought to check dependencies. Everything looked ok there, though. I didn't think most of the suggestions applied because the complied app worked ok when I ran it from the windows command line. It was just when I double-clicked it. Should I open a ticket with tech support? Thanks!
See Also
Categories
				Find more on Application Deployment in Help Center and File Exchange
			
	Products
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!



