How to print changing y value on plot using the "COMET" function

3 visualizzazioni (ultimi 30 giorni)
For the following code I am trying to print the y value as a function of time on the plot itself (shown here is a damped sine wave function). However, the value is not printing. Many thanks in advance for any help.
x = linspace(0,5,250);
for k = 2:length(x)
y = exp(-350.*x).*25.*cos(4.*x)+200;
ax = axes;
set(ax, 'xlim', [0 3], 'ylim', [150 300]);
hold(ax);
comet(ax,x,y)
txt = num2str(y); %%%%%%ISSUE CODE
text(2.15,275,sprintf('%d',txt)) %%%%%%ISSUE CODE
end

Risposta accettata

Walter Roberson
Walter Roberson il 1 Dic 2018
text(2.15,275,txt)
Alternately instead of assigning anything to txt use
text(2.15,275,sprintf('%d',y))
  2 Commenti
Michael Armstrong
Michael Armstrong il 1 Dic 2018
Thanks again, Walter Robinson. The text is appearing behind the background of the plot, and I should include "delete(y)" at the end of the loop. I'll comment again once I've fixed the issue.
Walter Roberson
Walter Roberson il 2 Dic 2018
if exist('lab', 'var') && ishghandle(lab); delete(lab); end
lab = text(2.15,275,sprintf('%d',y));
WIth regards to it appearing behind the plot: use a z coordinate in the text() call.

Accedi per commentare.

Più risposte (0)

Categorie

Scopri di più su Animation in Help Center e File Exchange

Prodotti


Release

R2018b

Community Treasure Hunt

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

Start Hunting!

Translated by