MATLAB: Non-linearly spaced axis

bode plotnonlinear

I need to manually create a bode plot with my frequency values of [0.01 0.05 0.1 0.5 1 2 5 10 20 50 100 200 500],
magnitude of [-23.521920 -23.525300 -23.534820 -23.847406 -24.713787 -27.168337 -34.150448 -42.334723 -52.552808 -67.958800 -79.331525 -86.558043 -104.436975],
and phase of [-0.33 -1.90 -2.37 -19.10 -36.71 -60.53 -102.28 -132.75 -152.00 -167.24 -177.14 -198.62 -180.00].
Here is my graph when I plot in on MATLAB:
But I want the x axis to be like how it is in the actual bode plot like this:
ranging from 0.01 to 1000, with non-linear spacing. Can anyone tell me how I can fix this?
P.S. I'm sorry I don't know how to make the images small…

Best Answer

You need to set the xscale to 'log'. Run the following line after creating the plot
xlim([0.01 1000])
set(gca, 'XScale', 'log')