Problems when running GUI graph plotting with 'while' or 'if' loops
2 visualizzazioni (ultimi 30 giorni)
Mostra commenti meno recenti
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
0 Commenti
Risposta accettata
Rik
il 29 Lug 2019
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.
Più risposte (0)
Vedere anche
Categorie
Scopri di più su Loops and Conditional Statements in Help Center e File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!