This behavior is expected. The Camera tools and the Rotate tools are two separate active window tools that reset each other. To view an axes for which the camera properties have been set from a different angle, use the Camera Toolbar instead of the Rotate 3D tool.
For example, try the following:
sphere
camup([0 1 0])
cameratoolbar('Show')
Next, click on the first togglebutton on the camera toolbar. This turns on the Camera Orbit tool. Now set the Coordinate system axis to be 'None' by using the last toggle button for the Principal axis selector in the toolbar (the default is Principal Z). Now if you use the Camera Orbit rather than the Rotate 3D tool, the view of the axis does not reset when you start to rotate the axis.
The CAMORBIT command rotates the camera position around the camera target. The 'coordsys' function parameter allows the user to specify whether the rotation occurs around the point defined by the camera target, or around the axes defined by this point and the direction indicated. Note that the location of the camera target does not change relative to the camera when CAMORBIT is used, but it may change if ROTATE3D is used.
As the following documentation page describes:
"The behavior of CAMORBIT differs from the ROTATE3D function in that while the ROTATE3D tool modifies the View property of the axes, the CAMORBIT function fixes the aspect ratio and modifies the CameraTarget, CameraPosition and CameraUpVector properties of the axes."
For more information about the ROTATE3D and CAMORBIT commands, refer to the documentation for each of these tools:
Rotate camera position around camera target - MATLAB
Rotate 3-D view using mouse - MATLAB
View Control with the Camera Toolbar :: Defining the View (MATLAB®)
Rotate camera position around camera target - MATLAB
Best Answer