Plot first, then set axis properties to other than default ones...
XTicks=flip(1./(2:20));
XTickLabel=flip({'1/2','1/3','1/4','1/5','1/6','1/7','1/8','1/9','1/10','1/11','1/12','1/13',...;
'1/14','1/15','1/16','1/17','1/18','1/19','1/20'});
plot(XTicks,FE(:,5))
ax.XTick=XTicks
ax.XTickLabel=XTickLabel
Must flip the labels to match the order of the tick array.
Also, NB: Undoubtedly you'll find that the tick marks at the LH edge of the axis will be too close together to be able to have every one labeled--you'll have to pick a subset of every 2nd or 3rd for those until the spacing is large enough they don't overlap.
Also NB(2): :)
You can generate the labels programmatically rather than having to write the string out manually...
XTickLabels=num2str([2:20].','1/%d');
Note here that the vector must be a column vector to put the individual elements into rows in the text array; otherwise they'll all be run together on a long line that won't work well at all...