Use Legend to show array and matrix

I have one array and one matrix like A={'x' 'y' 'z'}; B=[1 2 3]. I want to make a legend as: x=1 y=2 z=3
in my plot, could anyone help me with this issue.
Thanks

 Réponse acceptée

Walter Roberson
Walter Roberson le 17 Déc 2013
legend( arrayfun(@(K) sprintf('%s=%d',A{K}, B(K)), 1:length(A), 'UniformOutput', false) )

4 commentaires

Alternately,
legend( strcat(A, '=', num2str(B(:)) ) )
Wei
Wei le 17 Déc 2013
Thanks guys! I can have one legend now... But actually I just have x=1 without other two legends. Do you know how to modify?
Thanks
Wei
Wei le 17 Déc 2013
It said: Warning: Ignoring extra legend entries.
Walter Roberson
Walter Roberson le 17 Déc 2013
You can only have one legend entry per plotted item (e.g., one per line).
How are you doing your plotting, and what are the size() of the matrices you are plotting ?

Connectez-vous pour commenter.

Plus de réponses (1)

Honglei Chen
Honglei Chen le 16 Déc 2013
You can do this:
plot(rand(10,3))
legend(cellfun(@(x,y)sprintf('%s=%s',x,y),A,B,'UniformOutput',false))

8 commentaires

Wei
Wei le 16 Déc 2013
Thanks for your reply. I am sorry I just modified my question and could you please take look at it again?
Thanks
Azzi Abdelmalek
Azzi Abdelmalek le 16 Déc 2013
Why have you changed your question?
Wei
Wei le 16 Déc 2013
I made some change of my code...
Honglei Chen
Honglei Chen le 16 Déc 2013
Your B now contains numbers, replace the second %s in my code to %d if they are integers
Wei
Wei le 16 Déc 2013
It always give me this: Error using cellfun Input #2 expected to be a cell array, was double instead.
Honglei Chen
Honglei Chen le 17 Déc 2013
You change the second one to a regular array, you can use Walter's code below
Wei
Wei le 17 Déc 2013
Thanks a lot! I got the legend but there is only x=1 without other two.
Wei
Wei le 17 Déc 2013
It said: Warning: Ignoring extra legend entries.

Connectez-vous pour commenter.

Tags

Community Treasure Hunt

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

Start Hunting!

Translated by