def contruct_ellipse_parallel(pars):
Coor,cm,A_i,Vr,dims,dist,max_size,min_size,d=pars
dist_cm = coo_matrix(np.hstack([Coor[c].reshape(-1, 1) - cm[k]
for k, c in enumerate(['x', 'y', 'z'][:len(dims)])]))
Vr.append(dist_cm.T * spdiags(A_i.toarray().squeeze(),
0, d, d) * dist_cm / A_i.sum(axis=0))
if np.sum(np.isnan(Vr)) > 0:
raise Exception('You cannot pass empty (all zeros) components!')
D, V = eig(Vr[-1])
dkk = [np.min((max_size**2, np.max((min_size**2, dd.real)))) for dd in D]
# search indexes for each component
return np.sqrt(np.sum([(dist_cm * V[:, k])**2 / dkk[k] for k in range(len(dkk))], 0)) <= dist
#%% threshold_components
评论列表
文章目录