Create a legend for complex numbers plot

Hi,
I am plotting m by n matrices of complex numbers using
figure;
plot(poles_sys_a, 'kx'); hold on;
plot(poles_sys_b, 'ro'); hold off;
How can I insert a legend into that plot, that correctly labels the two sets?
legend('poles of sys_a','poles of sys_b');
doesn't work.
For example try
poles_sys_a = rand(3,10) + i*rand(3,10);
poles_sys_b = rand(3,1) + i*rand(3,1);
Thanks a lot.
JJ

 采纳的回答

Your ‘poles_sys_a’ matrix is confusing the plot function. If you create the ‘poles_sys_a’ matrix to vectors (using the ‘(:)’ notation), it works correctly with the legend call:
poles_sys_a = rand(3,4) + 1i*rand(3,4);
poles_sys_b = rand(3,1) + 1i*rand(3,1);
figure;
ha = plot(real(poles_sys_a(:)), imag(poles_sys_a(:)), 'kx');
hold on
hb = plot(real(poles_sys_b), imag(poles_sys_b), 'rx');
hold off
legend('poles of sys_a','poles of sys_b');
I decreased the size of ‘poles_sys_a’ so I could be certain it plots correctly with my changes. (It does.) I also changed the red 'o' to 'x' because by convention ‘x’ indicate pole locations, and ‘o’ zero locations.

更多回答(1 个)

legend({'poles of sys_a','poles of sys_b'})

6 个评论

Nope, doesn't work. It still displays a black cross where a red circle should appear in the legend.
provide your datas to test
When I try in R2018b, I get a legend with black x and red o
I'm using R2018b. But just black crosses.
Even am using 2018b I get the same result as sir Walter
I added the example, so the question is still open.

请先登录,再进行评论。

类别

标签

Community Treasure Hunt

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

Start Hunting!

Translated by