running parallel loop until a variable or event
1 visualizzazione (ultimi 30 giorni)
Mostra commenti meno recenti
Hi guys, I'm trying to make a button blink every time just when a varriable or event change:
function blink(hObject, eventdata, parent_GUI)
handles = guidata(parent_GUI);
parfor i=1:3
if get(handles.boton_circulo_visible_in,'Value')==0
i=i-1;
end
set(handles.CONECTAR,'ForegroundColor',[1,1,1]);
disp('prendido')
pause(0.5)
set(handles.CONECTAR,'ForegroundColor',[0,0,0]);
disp('apagado')
pause(0.5)
end
I tried with parfor loop but it say show me an error " changing the loop index is invalid inside a parfor loop iteration". So i loop up abaout other parallel loop like spmd, but also it executes only single time. I dont know what can i do to make that iterative until a variable change
Thanks
0 Commenti
Risposte (1)
Ronit
il 21 Ago 2024
Hello Juan,
The error you're encountering is since parfor does not allow modification of the loop index within the loop body. Additionally, parfor is intended for parallel execution, which might not be necessary for your blinking button functionality. Instead, you can use a while loop to continuously check the variable's value and blink the button accordingly.
function blink(hObject, eventdata, parent_GUI)
handles = guidata(parent_GUI);
while true
% Check the condition to continue blinking
if get(handles.boton_circulo_visible_in, 'Value') == 0
% Button is off, keep blinking
set(handles.CONECTAR, 'ForegroundColor', [1, 1, 1]);
disp('prendido');
pause(0.5);
set(handles.CONECTAR, 'ForegroundColor', [0, 0, 0]);
disp('apagado');
pause(0.5);
else
% Button is on, stop blinking
break;
end
end
end
I hope it helps your query!
0 Commenti
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!