Structure of the matrix_world

Hello all,
Sorry if this is not the right place for this. I was wondering if anyone can shed some light on the transform matrix used for objects.

I am used to the 3x3 rotation part of the world transform matrix to contain the x, y and z axes directly. However when I create an empty, and rotate euler 45, -45, -45 the x-axis is pointing somewhere in the +x, -y and +z direction, however from the matrix I get:

o.matrix_world[0]

Vector((0.4999999701976776, 0.1464466005563736, -0.8535534143447876, 0.0))

indicating the x axis points in the negative z-direction.

The y-axis has shows an odd one as well, the x component should be pretty small but comes out as:

o.matrix_world[1]
Vector((-0.5, 0.8535534143447876, -0.1464466005563736, 0.0))

Am I wrong in interpreting the transform matrix like this?

Thanks,
Koen

The object axes are the columns of the matrix, and you’re reading the rows here.

Oh, perfect,

This post had confused me about that:

Thanks,
Koen