MATLAB: How to sample n elements from each column of a matrix

sample elements

I have this matrix:
A =
1 5 9 13 17
2 6 10 14 18
3 7 11 15 19
4 8 12 16 20
I want to sample n elments with replacement from each column. For instance, if n=2, I would like to get something like:
B =
2 8 10 14 20
4 8 9 15 17
I tried datasample, but it samples entire rows. Is there an efficient way to do this without using a for loop?

Best Answer

B=A(randi(size(A,1),2,size(A,2))+(0:size(A,2)-1)*size(A,1));