MATLAB: How to change matlab plot legend automatically

automaticalylegendMATLAB

Suppose I have a data emax = [1 2 3];
Now I have data X(length(emax), 1:10) and Y(length(emax), 1:10)
When I plot X and Y, I have 3 lines in this case.
My legend is legend('emax =1', 'emax=2', 'emax =3');
Suppose, for a new set of experimental data, I have,
emax =[10 20 30 40 50] and my X and Y data size is now(1:5,1:10). This time my plot will have 5 lines.
I have to manually change the legend to make it right.
Is there a way to create the correct legend automatically in such a situation?

Best Answer

What does "automatically" exactly mean? You have to provide at least "emax = ", of course. So all you have to do "manually" is to insert the numbers from 1 to 5, correct?
S = sprintf('emax = %d*', 1:5);
C = regexp(S, '*', 'split');
legend(C{:})