How to designate an axes for plot in the GUI environment with a timer

2 visualizaciones (últimos 30 días)
Feng
Feng el 5 de Dic. de 2016
Comentada: Walter Roberson el 6 de Dic. de 2016
I have two GUI figures, with one having an axes in to plot using 'plot' in a time function. However, when the second GUI window opens, the plot will get to the 2nd GUI, rather than staying in the 1st figure. If I use a command like 'openfig', it will generate an error in the timer function.
Any suggestions?
Thanks!
  1 comentario
David Barry
David Barry el 6 de Dic. de 2016
Have you created an axes handle and are you using it as the first input to plot? Can you share your code?

Iniciar sesión para comentar.

Respuestas (1)

Walter Roberson
Walter Roberson el 6 de Dic. de 2016
When you create the timer callback, pass the axes handle as one of the parameters to it.
ax = handles.axes3;
t = timer('Callback', @(src, event) MyTimerCallback(src, event, ax), ....);
function MyTimerCallback(src, event, ax)
plot(ax, ....)
  2 comentarios
Feng
Feng el 6 de Dic. de 2016
Thanks Walter, for trying to help me!
Here is the related part of the code I changed based on your suggestion:
ax = handles.TG_Plot
b = timer;
b.ExecutionMode='FixedRate';
b.period = 5;
b.name = 'PowerAndCurrent';
b.TimerFcn = @(src, event) PowerCurrentRead(src, event, ax);
b.StartDelay = 0.3;
function PowerCurrentRead(src, event, ax)
plot(ax, w(1,:), w(2,:),'r','Linewidth',2)
The TG_Plot is the Axes I generated in the gui environment where I intended to plot.
It starts to plot on this Axes. But as soon as I start working on the second gui figure, the plot jump to the new gui, and will come back after I close the 2nd gui.
Thanks,
Feng
Walter Roberson
Walter Roberson el 6 de Dic. de 2016
That should not happen with that code, not unless somehow the Parent of handles.TG_Plot gets set to the new figure.
By the way, where is PowerCurrentRead getting w from?

Iniciar sesión para comentar.

Categorías

Más información sobre Specifying Target for Graphics Output en Help Center y File Exchange.

Etiquetas

Community Treasure Hunt

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

Start Hunting!

Translated by