部署的MATLAB文件无法启动

时间:2014-02-25 07:10:57

标签: matlab

拜托,我有这段代码涉及保存gui状态(使用Doug Hull的)方法。 问题是脚本编译正常,但只有弹出并在运行时使用deploytool消失。我正在使用Matlab R2012b。

function savestate3

S.fh=figure('NumberTitle','off',...
    'Visible','on','Position',[360 400 450 285],...
    'closerequestfcn',{@fh_crfcn});


S.tg(1)=uicontrol(S.fh,'Style','toggle','String','Semester',...
    'pos',[15 250 100 25],'val',0,'visible','on');  
S.tg(2)=uicontrol(S.fh,'Style','toggle','String','Details',...
    'pos',[135 250 100 25],'val',0,'visible','on'); 
S.ed(1)=uicontrol(S.fh,'Style','edit','String','Edit Text',...
    'pos',[250 70 100 25],'visible','off');  
S.lb(1)=uicontrol(S.fh,'Style','listbox','String',{'One','Two','Three'},...
    'pos',[100 170 100 70],'visible','off'); 
S.cb(1)=uicontrol(S.fh,'Style','checkbox','Value',1,'String','Check Me',...
    'pos',[250 170 100 25],'visible','off'); 

set(S.tg(:),'callback',{@tg_call,S})


guidata(S.fh,S)
restoreState(S);

function saveState(handles)
    state2.editstr=get(S.ed(1),'String');
    state2.listval=get(S.lb(1),'value');
    state2.checkval=get(S.cb(1),'value');

    save state1.mat state2
end

function restoreState(handles)

        load 'state1.mat' 'state2'
        set(S.ed(1),'string',state2.editstr,'FontSize',12,'FontWeight','bold');
        set(S.lb(1),'value',state2.listval);
        set(S.cb(1),'value',state2.checkval);
end


function fh_crfcn(varargin)
    saveState(S)
    delete(S.fh)
end



%TOGGLE OPERATIONS
function []=tg_call(varargin)
%Toggle Operations
[h,S]=varargin{[1,3]};
if get(h,'val')==0
    set(h,'val',1)
end

switch h
    case S.tg(1)
    set(S.tg(2),'val',0)
    set(S.ed(1),'visible','on')
    set(S.lb(1),'visible','on')
    set(S.cb(1),'visible','off')
    saveState(S)
    case S.tg(2)
    set(S.tg(1),'val',0)
    set(S.cb(1),'visible','on')
    set(S.ed(1),'visible','off')
    set(S.lb(1),'visible','off')
    saveState(S)
end
end

end

1 个答案:

答案 0 :(得分:0)

好吧,我想到了这一点,但仍然不知道这是否是“完美”的事情。

编译完成后,我将mat文件state1.mat放在distr / src文件夹中,然后就可以了。