How to "automatically" show an equation, written in the matlab editor, as a text on a plot
Mostra commenti meno recenti
%Input
x = 1 : 10;
a = 0.5;
y = exp(-a*x); % equation to show inside the plot
plot(x,y)
% Desired Output

Note 1: my goal would be to have a command that, if I change my equation here
y = exp(-a*x);
the text in the plot changes automatically!
Note 2: Currently, I use a "manual" command that I sould update if I change my original equation (y = exp(-a*x)), i.e.
text(2,0.5,sprintf('$$y = e^{-ax}$$'),'Interpreter', 'latex', 'fontsize', 20);
2 Commenti
John D'Errico
il 24 Ago 2022
Modificato: John D'Errico
il 24 Ago 2022
Sorry. You cannot set up a link to a symbolic variable, that will then automatically change annotations on a plot, with nothing done by you.
Could you create a new custom class, that would do the work for you? Probably. It would take some work, and I am sure things would go crazy some of the time.
You would probably spend way more time writing that code to do this than you currently spend just calling text.
Sim
il 24 Ago 2022
Risposta accettata
Più risposte (4)
2 Commenti
Star Strider
il 26 Ago 2022
@Sim — I wasn’t certain that it provided the desired result as to ‘automatically’ presenting the function. It requires a text call whose coding and placement is not automatic, and although it uses the latex function to provide the correct formatting, does nothing ‘automatically’.
I also saved the code, however you saved it as well. If you want me to re-post it as an answer, I wlll.
Does the text have to be situated inside the plot? ezplot() will automatically create a plot title displaying the mathematical form of the function.
syms x
a=0.5;
ezplot(exp(-a*x))
1 Commento
vamshi sai yele
il 26 Ago 2022
Hi there,
My understanding is that you wish to display a matlab-written equation as text on a graphic and as per my knowledge, MATLAB currently does not support this but the work around would be
You can accomplish this by utilising the "text" function. The code for the same is displayed below:
x = linspace(0,10,50);
y = sin(x);
plot(x,y)
u = '\leftarrow sin(\pi) = 0';
text(pi,sin(pi),u)
In the above code, first and second arguments of ‘text’ function are (x,y) coordinates respectively on the plot where the equation starts.
To address specifically about the equation you mentioned, last line should be modified as:
text(2.5,0.5,'\leftarrow y=e^-^a^x')
or
text(2.5,0.5,'\leftarrow y=e^-^a^x')
Make changes in the arguments accordingly to achieve the desired results…!!
For your reference and to learn more about this, kindly refer to this link
1 Commento
Sim
il 26 Ago 2022
Walter Roberson
il 26 Ago 2022
0 voti
Write your "master" equation as a character vector or string instead of as a symbolic expression.
Then have the code use str2sym() to convert the character vector or string into something symbolic that you could then calculate with and plot. You can then text() the character (or string) form of it.
In this way you only have to change the character (or string) form of the equation and re-run in order to get the description updated.
1 Commento
Sim
il 28 Ago 2022
Categorie
Scopri di più su Creating, Deleting, and Querying Graphics Objects in Centro assistenza e File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!



