Why after transforming an object with the matrix_world of another object the reference and target object have different transformation matrices?
Here the updated code after following batFINGER suggestions
import bpy
import os
from mathutils import Matrix,Euler

WORKING_DIR = &quot;G:\Progetto QA\RR PSD Gephryn\Export\Obj&quot;
file_name = &quot;RRGEF1_An_LV-pi_1226.obj&quot;
file_loc = os.path.join(WORKING_DIR, file_name)

#import object
imported_object = bpy.ops.import_scene.obj(filepath=file_loc,axis_forward='Z', axis_up='-Y')
obj_object = bpy.context.selected_objects[0]
bpy.context.scene.objects.active = obj_object

obj_object.scale=(0.001,0.001,0.001)

#Translate the imported object    
bpy.ops.transform.translate(value=(2.45409, 1.31843, 2.94766), constraint_axis=(False, False, False), constraint_orientation='GLOBAL', mirror=False, proportional='DISABLED', proportional_edit_falloff='SMOOTH', proportional_size=1)

#get the transformation matrix of the transformed object
M=bpy.context.object.matrix_world

bpy.ops.object.select_all(action='DESELECT')

#re-import object
imported_object = bpy.ops.import_scene.obj(filepath=file_loc,axis_forward='Z', axis_up='-Y')

#Transform with matrix multiplication
obj_object2 = bpy.context.selected_objects[0]
obj_object2.matrix_world = M * obj_object2.matrix_world

# Adjust the transformation
obj_object2.rotation_euler=Euler((-1.5708,0,0),'XYZ')

M2=bpy.context.object.matrix_world

print (&quot;reference:&quot;,M)
print (&quot;target:&quot;,M2)