I don't know what is happening there. It always worked for me. If you have large number of cycles with smooth variation i.e. large time scale with small time interval you will definitely see the frequency components. First of all matlab stores its frequency components like. 0 to $\omega_ {max}$ then $-\omega_{max}$ to 0. Hence if you want your zero frequencies in the middle use function fftshift. Take the abs() of the Fourier transform and you get the spectrum. You will see frequencies at $\pm\omega$. If you can not resolve them try to increase the time length(decrease frequency step) and increase time step (decrease max frequency).
If you want single frequency use $\exp(i\omega t) $
If you still cannot see the frequency components there might be aliasing effects. To work around them multiply your high frequency signal with a slowly varying envelope (may be gaussian) which makes the amplitude near end of array small.
EDIT: I think the gist of original question is changed.
In my opinion now the question is about the understanding of the frequency of a wave. Frequency in a wave (in the case of pure sine wave) is just peak counting, if the time period of a wave is T then you will count 1/T peaks of the wave every second which corresponds to frequency $\frac{\omega}{2\pi}$, now if you close your eyes at every alternative peak you will get the frequency $\frac{\omega}{2.2\pi}$, but it will not present the correct picture.
However if the wave is non-symmetric or non sinusoidal you can decompose it into its Fourier components and then you will see many frequency components.
Hope this will help