How to make a log plot in matlab

Is it possible to make a plot in matlab that does not actually take the logs of the values? I'm plotting wide ranges of values and when I try to make a log plot of them, those below 1 become negative. I would just like it to plot the values on a log scale without taking their logs.

Answers


Yes, it is possible. Use the loglog command.

The example from the Mathworks website:

x = logspace(-1,2);   % generate a sequence of points equally spaced logarithmically
loglog(x,exp(x),'-s')
grid on

If you do not want both axes to be log scale, use semilogx or semilogy.


Alternatively, set(gca,'XScale','log') if you have your plot already.


So, you want to plot liner data on logarithmic axes? You can exponentiate you values before using the log plot. This way the point p=(10,3) will plot at the x=10 position.


Need Your Help

MySQL: Very slow update/insert/delete queries hanging on "query end" step

mysql performance replication innodb

I have a large and heavy loaded mysql database which performs quite fast at times, but some times get terribly slow. All tables are InnoDB, server has 32GB of RAM and database size is about 40GB.