首页 文章

R2016a补丁()中的错误?

提问于
浏览
3

当我在MATLAB R2016a 上执行以下命令时:

patch([0 1 1 0],....
      [0 0 1 1],...
      cat(3, [0.55 0.45 0 0],...
             [0.45 0.35 0 0],...
             [0.25 0.15 0 0]),...
      'facecolor', 'interp');

我明白了:

使用补丁矢量时出错必须长度相同 .

但是,我可以在任何其他版本中完美地执行它 . 我尝试了 R2010aR2014aR2017a ,所有结果都相同:

enter image description here

(相关)文件( help patch )规定:

patch(X,Y,C)创建一个或多个填充多边形[...]如果C是1乘n乘3,其中n是X和Y的列数,则每个面j是由RGB三联C(1,j,:)平面着色 .

很明显,这是R2016a中的一个错误 . 但我找不到关于此的错误报告......任何人都可以指出我正确的方向吗?

什么是最佳的解决方法来实现预期的效果,版本是非法的?

1 回答

  • 2

    RGB三元组应该转置:

    patch([0 1 1 0], [0 0 1 1],...
          cat(3, [0.55 0.45 0 0].',...
                 [0.45 0.35 0 0].',...  % <- NOTE: transposed
                 [0.25 0.15 0 0].'),...
          'facecolor', 'interp');
    

相关问题