%%
% Here is a simple trick for turning any square matrix into a symmetric one.
A = magic(4) + eye(4);
B = A + A'

%%
% Picking a symmetric matrix at random, there is little chance that it will
% be positive definite. Fortunately, the built-in Cholesky factorization
% chol always detects this property. The following would cause an error if 
% run:

%%
% |R = chol(B)|     

%%
% There is a different trick for making an SPD matrix from (almost) any
% other matrix. 
B = A'*A

%%
R = chol(B)

%%
norm( R'*R - B )

%%
% A word of caution: |chol| does not check symmetry; in fact, it doesn't
% even look at the lower triangle of the input matrix.
chol( triu(B) )