How to label each data point in a MatLab plot, like the following figure?

MatLab code:

x = [1:10]; y = x + rand(1,10); figure('color','w'); plot(x,y,'o'); a = [1:10]'; b = num2str(a); c = cellstr(b); dx = 0.1; dy = 0.1; text(x+dx, y+dy, c);

It also works on 3D plot:

Perfect answer, thank you

Thanks a lot. Your article helped me.