Problems when running GUI graph plotting with 'while' or 'if' loops

Hi, I am doing a GUI plotting, trying to implement a real-time plot. I use 'if' loop for different conditions with the pushbutton callback, but when 'if' loop is used, there is error and the other conditions will not execute. So, I use 'while' loop instead and it works. The problem is, when the 'while' loop is used, the command inside the 'while' loop cannot run normally as the conditions keep refreshing by the loop. Can anyone help me?
My function looks like this, inside a pushbutton callback:
if hObject.String=='Start'
set(handles.pushbutton1,'String','Pause');
for i=1:end
plot(x);
end
end
while hObject.String=='Pause' % when 'if' is used here, the plot won't stop plotting
set(handles.pushbutton1,'String','Cont.');
plot(x(1:i));
% at here I want to select and highlight data, since 'while' loop is running, the dragged plot will return to the 'while' loop place and the datatip unable to be selected.
end
while hObject.String=='Cont.'
set(handles.pushbutton1,'String','Pause');
j=i;
for i=j:end
plot(x);
end
end

 Akzeptierte Antwort

Rik
Rik am 29 Jul. 2019

0 Stimmen

You should be using strcmp to test if a char array is equal to another char array. Your current tests are array operations.
Also, if is not a loop. The only ways to start a loop is with while, for, and parfor.
A final note: two of your loops just repeat the same code without any dependancy on the loop variable. Why are you using a loop at all there? Unless x is a function, you should use the pause function to stop plotting for a moment.

Weitere Antworten (0)

Kategorien

Mehr zu Loops and Conditional Statements finden Sie in Hilfe-Center und File Exchange

Gefragt:

Wen
am 28 Jul. 2019

Kommentiert:

Wen
am 29 Jul. 2019

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by