R2016a补丁()中的错误?

时间:2017-10-11 18:38:26

标签: matlab plot

当我在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');

我明白了:

  

使用补丁

时出错      

矢量必须长度相同。

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

enter image description here

(相关)文档(help patch)声明:

  

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

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

实现所需效果的最佳解决方法是什么,版本无法正常

1 个答案:

答案 0 :(得分: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');