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
