Convert a 1D array into a 'rotated' 2D matrix
I assume that the length of the array is odd and that the array is symmetrical. Also note that from your requirements not all elements of the resulting matrix are specified. Those elements will be zero in the code shown below.

v=[1,2,3,2,1];      % odd-length array
A=diag(v);
A=A+rot90(A);
n=(length(v)+1)/2;
A(n,:)=v;
A(:,n)=v;
A =

1   0   1   0   1
0   2   2   2   0
1   2   3   2   1
0   2   2   2   0
1   0   1   0   1