<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def kabsch_rotate(P, Q):
 """ Rotate matrix P unto matrix Q using Kabsch algorithm. Parameters P : array (N,D) matrix, where N is points and D is dimension. Q : array (N,D) matrix, where N is points and D is dimension. Returns ------- P : array (N,D) matrix, where N is points and D is dimension, rotated """

    U = kabsch(P, Q)

    # Rotate P
    P = np.dot(P, U)
    return P