当我在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 ,所有结果都相同:
(相关)文档(help patch
)声明:
patch(X,Y,C)创建一个或多个填充多边形[...]如果C是1乘n乘3,其中n是X和Y的列数,那么每个面j由RGB三联体C(1,j,:)平坦着色。
很明显,这是R2016a中的一个错误。但我找不到关于此的错误报告......任何人都可以指出我正确的方向吗?
实现所需效果的最佳解决方法是什么,版本无法正常?
答案 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');