How to include function in legend
    26 visualizaciones (últimos 30 días)
  
       Mostrar comentarios más antiguos
    
    Niklas Kurz
 el 3 de Jun. de 2021
  
    
    
    
    
    Comentada: Star Strider
      
      
 el 3 de Jun. de 2021
            I tried all possibl string2functions of Matlab, but not getting quiete the result. 
Here's my best try: 
syms x
F = x^2; % Definied Function
g = matlabFunction(F); 
% some random steps 
x = -10:0.1:10;
f = g(x); 
p1 =  plot(x,f);
hold on
n = 20; 
C = jet(n);
for k= 1:n
p2 = plot(x,f+2*k,'Color',C(k,:));
end 
% Here comes the questionable part. 
legend([p1,p2],{strcat('f = ',char(F)),sprintf('f at n =  %0.f',n)},...
    'Interpreter','latex','FontSize',20)
Basically I want the function that I definied to be automatically updated in legend. (Pretty handy if you change f multiple times). However in my attemp I get a warning:
 String scalar or character vector must have valid interpreter syntax:
f:x^2
How can the function be acknowledged by the interpreter? 
0 comentarios
Respuesta aceptada
  Star Strider
      
      
 el 3 de Jun. de 2021
        A sllightly different approach — 
syms x
F = x^2; % Definied Function
g = matlabFunction(F); 
% some random steps 
x = -10:0.1:10;
f = g(x); 
p1 =  plot(x,f);
hold on
n = 20; 
C = jet(n);
for k= 1:n
p2 = plot(x,f+2*k,'Color',C(k,:));
end 
% Here comes the questionable part. 
legend([p1,p2],{sprintf('$f = %s$',char(F)),sprintf('$f\\ at\\ n =  %0.f$',n)},...
    'Interpreter','latex','FontSize',20)
.
2 comentarios
Más respuestas (1)
  Joseph Cheng
      
 el 3 de Jun. de 2021
        
      Editada: Joseph Cheng
      
 el 3 de Jun. de 2021
  
      do you need to use latex as just using the default tex?  as latex uses $ for markup of symbols i don't know if it'll take the syms function very well without some edits.  if you get rid of the interpreter setting and use the default one
syms x
F = x^2; % Definied Function
g = matlabFunction(F); 
% some random steps 
x = -10:0.1:10;
f = g(x); 
p1 =  plot(x,f);
hold on
n = 20; 
C = jet(n);
for k= 1:n
p2 = plot(x,f+2*k,'Color',C(k,:));
end 
% Here comes the questionable part. 
legend([p1,p2],{strcat('f = ',char(F)),sprintf('f at n =  %0.f',n)},...
    'FontSize',20)
more info can be found here in another matlab tex vs latex answers sub
1 comentario
Ver también
Categorías
				Más información sobre Conversion Between Symbolic and Numeric en Help Center y File Exchange.
			
	Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!





