小编cfp*_*cfp的帖子

MATLAB pcolor/surf双线性插值(着色interp)

考虑以下MATLAB代码:

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
Run Code Online (Sandbox Code Playgroud)

注意,C在90度旋转下是不变的.另请注意以下句子中的帮助pcolor:

使用着色interp,使用C的所有元素,通过四个顶点处的颜色的双线性插值对每个单元进行着色.

但是,绘制的图像如下:

CodeOutput

请注意,图像在90度旋转下不是不变的(例如考虑四个角).现在,除非我可怕地误解双线性插值,否则这一定是错的.MATLAB似乎是在三角形上插值,这与双线性插值不同.

有没有办法解决这个MATLAB错误,并获得正确的双线性插值?(除了我自己手动插入额外的点,如果放大到足够远,这仍然无法解决问题.)

matlab surface matlab-figure shading bilinear-interpolation

7
推荐指数
1
解决办法
779
查看次数