import numpy as np
import random
import math
import matplotlib.pyplot as plt
D = 100
J = 7
p_1 = 2/3.0
p_2 = 1/6.0
p_3 = 1/6.0
u = np.ndarray((J,D))
angles = np.zeros((J,J))
deviation = 10
mu_Z = 0
sigma_Z = 1
mu_noise = np.zeros(D)
sigma_noise = 0.01*np.identity(D)
def draw_vector(D):
u = np.zeros(D)
for i in range(D):
r_num = random.random()
if r_num > 0 and r_num <= p_1:
u[i] = 0
continue
if r_num > p_1 and r_num <= p_1+p_2:
u[i] = 1
continue
if r_num > p_1+p_2 and r_num <= 1:
u[i] = -1
continue
return u
u = np.zeros((J,D))
for j in range(J):
u[j] = draw_vector(D)
for i in range(J):
u[i] = draw_vector(D)
for k in range(i):
dot_product = np.dot(u[i] , u[k])
if ((dot_product) <= 7 and (dot_product == 0)):
i = i+1
break