how to plot number in legend ?

he this is my code
for a=[ 1 3 5]
hold on;
disp('a')
H1=tf([ a],[3 4 ])
step(H1)
end
I want that in the plot it will be written the value of a of each line in the legend is it possible ?

2 Comments

Sure, just use num2str to write whatever text (if any) you want for each line label and pass to legend
tomer polsky
tomer polsky on 7 Apr 2018
Edited: tomer polsky on 7 Apr 2018
hi thank you for your answer ,but what I meant that it will be like this :
but insted that it will be written in the legend manually it will be written outamtacly

Sign in to comment.

 Accepted Answer

avals = [ 1 3 5];
for a = avals
hold on;
disp(a)
H1 = tf([ a],[3 4 ])
step(H1)
end
legend( sprintfc('%g', avals) )
I think that your legend() call in your image has the wrong order. The larger the numerator in the transfer function, the more gain there should be, so the last a drawn, the 5, should be the last legend entry, but you have reversed the order.

1 Comment

thank you very much for your help !!! bless you

Sign in to comment.

More Answers (1)

tomer polsky
tomer polsky on 13 May 2018
Hi I have other question , how can I write "K=1" and not only "1" ?

6 Comments

legend( sprintfc('K=%g', avals) )
I tried what you said before,how ever i get the wrong colors for some reason
color is independent of the string; that's based on the color spec of the line that your string refers to; it's a 1:1 correlation to those objects in the axes in their created order up to the number of labels passed; if the linestyle you want in the legend is the desired one, you've got to use the optional handle/subject argument to specify which one you mean.
However, when you step() a tf, the legend string is created in odd ways; there does not appear to be much control over it.
dpb
dpb on 14 May 2018
Edited: dpb on 14 May 2018
Hmmm....didn't notice but presumed tf something else as at least here
>> for a=[ 1 3 5]
hold on;
disp('a')
H1=tf([ a],[3 4 ])
step(H1)
end
a
Undefined function 'tf' for input arguments of type 'double'.
>>
the xfr-function requires a digital filter object for input, not a double so OP may have something else of same name or older release or...???
>> which tf -all
C:\ML_R2017\toolbox\signal\signal\@dfilt\tf.m % dfilt method
>>
Must admit haven't used it ever, though, since like R12 or thereabouts as gave up the consulting gig way back when so need went away...oldest release still at hand is R2014b and it's same need.
So, to OP--what is tf and what does step do to it??? I can't run what you have here to 'spearmint with--
>> which tf(1)
/Applications/MATLAB_R2018a.app/toolbox/control/ctrlmodels/@tf/tf.m % tf constructor
tf() is one of the primary routines for building transfer functions for control systems. step() with no output causes plotting of the transfer function.

Sign in to comment.

Tags

Community Treasure Hunt

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

Start Hunting!