How can I use a string in legend()?
58 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos
Marcel345614
el 26 de Oct. de 2020
Comentada: Penghao Duan
el 18 de Abr. de 2021
I have the following string:

Now I want to use this string to produce a legend to my figure. So I use
and get this:

But I would like to have this,

which I got by using the following command:
Tthis is exactly the string Legend copied into the function legend().
How can I use directly the string Legend, without copying it to the function legend()?
Edit: I forgot the following code sniplet:
p=zeros(2*length(HG),1);
hold on;
for iter2 = 1:length(HG)
p(2*iter2-1)=plot(freq,real(n(:,iter2)), 'color', cc(iter2,:));
p(2*iter2)= plot(freq,imag(n(:,iter2)),'--', 'color', cc(iter2,:));
end
I use the variable p to skip all dotted lines in the legend.
3 comentarios
Respuesta aceptada
Ameer Hamza
el 26 de Oct. de 2020
Although Walter's comment already shows the problems with eval(), in case you still want to use the current method, then the closest you can get is something like this
fig = figure()
hold on
p(1) = plot(rand(1,10))
p(2) = plot(rand(1,10))
Legend_str1 = "[p(1) p(2)]";
Legend_str2 = "{'ABC', 'DEF'}";
legend(eval(Legend_str1), eval(Legend_str2))
0 comentarios
Más respuestas (1)
Alan Stevens
el 26 de Oct. de 2020
You could use
Legend = ['HS+HG = 0.5+5' ;'HS+HG = 1+5'];
legend(Legend)
But make sure there are the same number of characters (including spaces) in both strings.
2 comentarios
Ameer Hamza
el 26 de Oct. de 2020
Following alternatives does not require that character arrays have equal lengths.
Legend = {'HS+HG=0.5+5';'HS+HG=1+5'};
legend(Legend)
or
Legend = ["HS+HG=0.5+5";"HS+HG=1+5"];
legend(Legend)
Ver también
Categorías
Más información sobre Legend 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!