Consider the following MATLAB code:
C = [ 0 0 0 0 0 0 1 2 1 0 0 2 4 2 0 0 1 2 1 0 0 0 0 0 0 ]; pcolor( C ); shading interp; axis square
Note that C invariant under 90 degree rotations. Also note this suggestion from the help for pcolor :
Using shading interp, each cell is colored by bilinear interpolation of colors at its four vertices, using all the elements of C.
However, the constructed image is as follows:

Note that the image is not invariant under 90-degree rotation (consider, for example, four angles). Now, if I do not mistakenly understand bilinear interpolation, this should be wrong. MATLAB seems to interpolate on triangles, which is not the same as bilinear interpolation.
Is there any way around this MATLAB error and get the correct bilinear interpolation? (In addition to manually interpolating additional points that still have not cured the problem, if it had come close enough.)
matlab matlab-figure surface shading
cfp
source share