The first step is drawing the cube. The following is from Multifaceted Patches in the doc:
vertex_matrix = [0 0 0 1 0 0 1 1 0 0 1 0 0 0 1 1 0 1 1 1 1 0 1 1]; faces_matrix = [1 2 6 5 2 3 7 6 3 4 8 7 4 1 5 8 1 2 3 4 5 6 7 8]; patch('Vertices',vertex_matrix,'Faces',faces_matrix,... 'FaceVertexCData',hsv(8),'FaceColor','interp') view(3); axis square
The next step is doing the translation and rotation of the cube.
For the translation, say by 1 unit along the x-axis, I would do something like this:
translation_matrix = repmat([1 0 0],size(vertex_matrix,1),1); vertex_matrix = vertex_matrix + translation_matrix; patch('Vertices',vertex_matrix,'Faces',faces_matrix,... 'FaceVertexCData',hsv(8),'FaceColor','interp') view(3); axis square
Not sure about the rotation, I'll leave it up to you to figure out how to manipulate the vertex and faces matrices.
HTH,
Arnaud