import numpy as np
def perfect_matrix(matrix):
new_matrix = matrix.copy().astype(float)
mean_val = np.mean(new_matrix)
std_val = np.std(new_matrix)
m_max = mean_val + std_val
m_min = mean_val - std_val
new_matrix = np.clip(new_matrix, m_min, m_max)
denominator = m_max - m_min
if denominator != 0:
new_matrix = (new_matrix - m_min) / denominator
else:
new_matrix = new_matrix - m_min
return np.round(new_matrix, 3)