MATLAB uses two different quaternion conventions in their toolboxes. In particular, the quaternion convention used in the Aerospace Toolbox is essentially the conjugate of the quaternion convention used in their Robotics Toolbox. See these links for more details of that difference:
The quat2eul( ) function comes from the Robotics Toolbox.
The dcm2Angle( ) function comes from the Aerospace Toolbox.
So these functions come from toolboxes with different definitions of quaternion conventions, and how to convert between quaternions and direction cosine matrices and Euler angles will be different between them.
Bottom line is you cannot mix & match functions from these toolboxes and expect consistency. Depending on what you are doing, one can give you the opposite answer as the other. You need to determine what quaternion convention you will be using, and then use the appropriate functions from the appropriate toolbox that uses the same convention.
The Robotics Toolbox "rotation matrix" is in fact a direction cosine matrix ... just another term for the same thing. It is the conversions between it and quaternions and Euler Angles that are different from the Aerospace Toolbox.