import numpy as np # Matrix is positive definite if Cholesky Decomposition exists def PositiveDefiniteMatrix(V): try: np.linalg.cholesky(V); return True except np.linalg.LinAlgError: return False def Generate_CorrMatrix(m,n): M = np.random.normal(0,1,(m,n)) V = np.corrcoef(M,rowvar=False)#columns represents variables, rows contain data. print('\n Matrix M: \n' + str(np.matrix(M))) print('\n Correlation matrix V: \n' + str(np.matrix(V))) print('\n Eigenvalues: \n' + str(np.linalg.eig(V)[0]) + '\n') print('\n Positive definite?') return PositiveDefiniteMatrix(V) Generate_CorrMatrix(m=3,n=4) Generate_CorrMatrix(m=100,n=4)