how can i change Y-axis into log and dont get Warning: Negative data ignored

7 vues (au cours des 30 derniers jours)
zhu ting
zhu ting le 1 Oct 2015
I am writing a Programm that turned both Axis into log10, here is my Programm:
x=real(lambda)/W0;
y=imag(lambda)/W0;
figure
plot(x,y,'*')
set(gca,'xscale','log')
set(gca,'yscale','log')
grid on
Lambda and W0 are two Input Data.
This Programm run very well when i just delete 'set(gca,'yscale','log')', but with this sentence then a Warning Negative data ignored will be pupped out. Is there any way that will let my y-axis being turned into 'log' and at the same time with negative data?
PS: i also tried LOGLOGPN but my plot is a lots of dots not a line so its also not working.
Mit freundlichen Grüßen
Ting Zhu
  1 commentaire
zhu ting
zhu ting le 1 Oct 2015
Modifié(e) : Walter Roberson le 14 Oct 2015
and here is what my data for example:
lambda=[-1;-2;-3+2j;-3-2j;-4+3j;-4-3j];
W0=1;

Connectez-vous pour commenter.

Réponses (1)

Kirby Fears
Kirby Fears le 1 Oct 2015
Hi Zhu,
The log function is undefined for negative values. Have a look at the wiki page .
Matlab can't apply log to the negative values, so it just ignores them.
Hope this helps.
  2 commentaires
zhu ting
zhu ting le 9 Oct 2015
but all my X-data are negative values and ist working without any Warning. Do u know why?
Here is my Input for example:
lambda=[-1;-2;-3+2j;-3-2j;-4+3j;-4-3j];
W0=1
Thanks
Kirby Fears
Kirby Fears le 13 Oct 2015
Log is not applied to the X values. Look at the X axis before and after the statement
set(gca,'xscale','log')
You will see that the X axis still has the exact same values as before. The values are only repositioned along the axis.
This allows you to plot log(y) against the original x values that generated y, but spaced in such a way that the plot is more readable.
Hope this helps.

Connectez-vous pour commenter.

Tags

Produits

Community Treasure Hunt

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

Start Hunting!

Translated by