Is There a Way to Perform a 2D Image Rotation by Matrix Multiplication? In my understanding, unlike shifting and scaling, image rotation actually rotates the coordinates whereby interpolating the pixels at discrete positions. It is like a projection that discrete values are projected to another plane which are along with the pixel value.

Thus, I am wondering whether we could do 2-D image rotation in a matrix multiplication way which directly perform rotation on the pixel matrix of the image?

Any help is appreciated in advance.
Let's say you have an $ M \times N $ image.
If you turn it into a vector in $ {R}^{\left( M N \right)} $ and create a matrix which is $ \left(M  N \right) \times \left( M  N \right) $ by multiplication and rearranging the vector from the multiplication result you can reposition any pixels where ever you want.  

Being practical, by padding the original image you can create rotation by any angle you want even with interpolation (By summing few pixels into one position).

It all starting with vectorization of the image.