Updating textbox with variable

28 Ansichten (letzte 30 Tage)
George Head
George Head am 1 Mai 2020
Beantwortet: Geoff Hayes am 1 Mai 2020
So i have plot that i want to connect a textbox to, so the textbox counts how many steps the person has done. The plot is a live, updating plot and i need the textbox to do the same. The format im after is "Steps: (no. steps)" which will be adding one each time. Here is the code im currently using although it doesnt work.
while (toc<30) %Loop when Plot is Active will run until plot is closed
vx=readVoltage(a,'A0');
vy=readVoltage(a,'A1');
.........
steps = stepleftacc + steprightacc
set(plotGraph,'XData',time,'YData',data);
axis([0 time(count) -90 90]);
pause(delay);
annotation('textbox',[0.75, 0.1, 0.1, 0.1],'string', "steps:" + steps)
This gives a textbox however the changing variable 'steps' seems to rewrite over itself, any solutions ot fix this?
Thanks

Antworten (1)

Geoff Hayes
Geoff Hayes am 1 Mai 2020
George - if you want to just update the existing annotation (rather than creating a new one on each iteration of the while loop) then you need to store the handle to the annotation and then use it for the update. For example,
hAnnotation = annotation('textbox',[0.75, 0.1, 0.1, 0.1],'string', "");
hold on;
while (toc<30) %Loop when Plot is Active will run until plot is closed
vx=readVoltage(a,'A0');
vy=readVoltage(a,'A1');
%.........
steps = stepleftacc + steprightacc
set(plotGraph,'XData',time,'YData',data);
axis([0 time(count) -90 90]);
pause(delay);
set(hAnnotation, 'String', "steps:" + steps);
% etc.
end
We create the annotaiton object outside of the loop and then update it on each iteration.

Produkte

Community Treasure Hunt

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

Start Hunting!

Translated by