Quantcast
Channel: MATLAB Central Newsreader Recent Posts
Viewing all articles
Browse latest Browse all 19628

Re: stop/pause plot signal with toggle button

$
0
0
On 3/26/2013 3:32 AM, zack00 wrote:
> Hi
> I have a 2 axes in my GUI with 2 different running signals..and 2 toggle buttons
>
> If toggle button = 1 signal is running and plotting...and if toggle
>button = 0 i want to stop/pause plotting this signal..and it is a problem for me
>
> How can I do it?
>
> thanks for answer
>

May be you use a call back to flip which plot to make?

something like this:

-------------------------------------------------------
function foo()

stopIt = false;
signalToPlot = 0;
t = 0:.2:12*pi;
N = length(t);
k =0;

set(0,'Units','Normalized');
f=figure('Units','normalized','Position',[.3 .3 .42 .42]);
h1=axes('Parent',f,'Units','normalized','Position',[.2 .2 .60 .6]);
h1Btn=uicontrol('Units','Normalized','Parent',f,...
     'Style', 'pushbutton',...
     'Position', [.05 .05 .1 .1],...
     'String','toggle',...
     'Callback', @btn1Callback,'FontSize',12);
h2Btn=uicontrol('Units','Normalized','Parent',f,...
     'Style', 'pushbutton',...
     'Position', [.15 .05 .1 .1],...
     'String','quit',...
     'Callback', @btn2Callback,'FontSize',12);
hold on;
xlim([0 12*pi]);
ylim([-1.1 1.1]);
grid;

while not(stopIt)
     cla(h1);
     k = mod(k+1,N);
     if signalToPlot
        plot(t(1:k),sin(t(1:k)),'r.-');
        title('sin(x)');
     else
        plot(t(1:k),cos(t(1:k)),'k.-');
        title('cos(x)');
     end
     pause(.1);
end

     function btn1Callback(hObject,eventdata)
         signalToPlot = not(signalToPlot);
     end

     function btn2Callback(hObject,eventdata)
         stopIt=true;
     end

close all;
end

----------------------------

Viewing all articles
Browse latest Browse all 19628

Trending Articles