This is to explain what actually sampling is and why and how it's done.
Here I've generated a simple continuous-like sinusoidal signal with frequency fm = 10kHz. In order to make it appear as a continuous signal when plotting, a sampling rate of fs=500kHz is used

Pretending the above-generated signal as a “continuous” signal, we would like to convert the signal to the discrete-time equivalent by sampling. By Nyquist Shannon Theorem, the signal has to be sampled at at-least fs=2*fm=20 kHz. Let’s sample the signal at f{s1}=30kHz and then at f{s1}=50kHz for illustration.

CODE
fs=500e3; %Very high sampling rate 500 kHz
f=10e3; %Frequency of sinusoid
nCyl=5; %generate five cycles of sinusoid
t=0:1/fs:nCyl*1/f; %time index
x=cos(2*pi*f*t);
plot(t,x)
title('Continuous sinusoidal signal');
xlabel('Time(s)');
ylabel('Amplitude');
For Sampling-
fs1=30e3; %30kHz sampling rate
t1=0:1/fs1:nCyl*1/f; %time index
x1=cos(2*pi*f*t1);
fs2=50e3; %50kHz sampling rate
t2=0:1/fs2:nCyl*1/f; %time index
x2=cos(2*pi*f*t2);
subplot(2,1,1);
plot(t,x);
hold on;
stem(t1,x1);
subplot(2,1,2);
plot(t,x);
hold on;
stem(t2,x2);