I have designed a simple gui. This gui has a question and a Yes and a No answer. I want my script to pause when I call the gui and resume when the gui finishes executing. My gui is the following:
function handles = GUI(currfig)g.fh = figure('units','pixels',... 'position',[300 300 350 100],... 'menubar','none',... 'Color','w',... 'name','Busbar Length Correction',... 'numbertitle','off',... 'resize','off',... 'Interruptible','off');g.sub=annotation('textbox',... 'units','pixels',... 'position',[0 0 350 100],... 'Tag','box',... 'Color',[58 51 153]/255,... 'BackgroundColor','none',... 'String','Delete the plot?',... 'Fontsize',14,... 'FaceAlpha',0,... 'EdgeColor', [112 112 112]/255);g.bg = uibuttongroup('units','pix',... 'pos',[0 0 350 50],... 'BorderType','line',... 'ForegroundColor','w');g.rd(1) = uicontrol(g.bg,... 'style','push',... 'unit','pix',... 'position',[180 15 70 22],... 'Fontsize',8,... 'string','Yes');g.rd(2) = uicontrol(g.bg,... 'style','push',... 'unit','pix',... 'position',[260 15 70 22],... 'Fontsize',8,... 'string','No');get(g.fh)set(g.rd,'callback',{@hide,g,currfig});function hide(varargin)g = varargin{3};str=[get(g.rd(1),'val'),get(g.rd(2),'val')];if str(1)==1 set(findobj('Tag','plota'),'visible','off') st='yes'; else set(findobj('Tag','plota'),'visible','on') st='no'; endassignin('base','st',st)close(g.fh)
and my script is the following.
h1=figure(1);x=0:1:10;s1=(x>=0 & x<=5);s2=(x>5 & x<=10);y(s1)=2.*x(s1)+5;y(s2)=-2.*x(s2)+25;figure(1);hold alla=plot(x(s1),y(s1),'color',[0 0.5 0]);b=plot(x(s2),y(s2),'color',[0 0 1]);% handlesa=get(findobj('Color', [0 0 1]));
set(findobj('Color', [0 0 1]),'Tag','plota');set(findobj('Color', [0 0.5 0]),'Tag','plotb');set(h1,'position',[13 715 180 101]);GUI_(h1);
a=8;
I want to assign to the workspace the variable st as you see in the gui before the script executes the command:
a=8;
How difficult can it be????
Best Answer