Are you transforming that in a shader? If yes you don't need to transform it to an angle representation:

Code:
float3x3 myMatrix = ...;
float3x3 myBoneMatrix = ...;

float3x3 rotMatrix = mul(myBoneMatrix, myMatrix); // bone matrix rotated by myMatrix

float3 pos = ...;

float3 transformedPos = mul(pos, rotMatrix);



Otherwise, there are two functions ang_to_matrix and ang_for_matrix which bring an Euler angle to a 4x4 rotation matrix and back. You will have to expand your 3x3 matrix then by adding a zeros, but the lower right fields must be 1. Important: the functions work with DirectX-style matrices, therefore the Z/Y components are switched. With mat_multiply you can multiply two matrices, with the code given above, you can easily rotate your bone matrix then, if you like.

If you are interested into the insights, well... to decompose a 3x3 rotation matrix into Euler angles by yourself, you will have a hard time. That is because there is no unique solution to that; regarding Gimbal Lock. A good explanation is found here: Computing Euler angles from a rotation matrix (Gregory G. Slabaugh). It describes how rotation matrices are built from an euler angle representation and how you can resolve it back. He also gives pseudo code and an example.