MATLAB: 1D array to 2D array positions

1d array2d array

I would like to 'convert' a 1D array to a 2D matrix considering the value inside the array as:
A =
1 3 4 4 3
B =
0 0 0 0 0
0 0 1 1 0
0 1 0 0 1
0 0 0 0 0
1 0 0 0 0
Can you suggest a very fast way to do that?
The row number is fixed at 5 here (a known value).

Best Answer

n = 5;
B = zeros(n,size(A,2));
B(sub2ind(size(B),n+1-A,1:size(A,2))) = 1;